dbt-conceptual 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. dbt_conceptual-0.4.0/.claude/COLLABORATION_NOTES.md +37 -0
  2. dbt_conceptual-0.4.0/.claude/INSTRUCTIONS.md +210 -0
  3. dbt_conceptual-0.4.0/.claude/POST_MERGE_CHECKLIST.md +66 -0
  4. dbt_conceptual-0.4.0/.claude/settings.local.json +89 -0
  5. dbt_conceptual-0.4.0/.claude/spec/take2/APPLICATION.md +1165 -0
  6. dbt_conceptual-0.4.0/.claude/spec/take2/MOCKUPS.html +2113 -0
  7. dbt_conceptual-0.4.0/.claude/spec/take2/POSITIONING.md +210 -0
  8. dbt_conceptual-0.4.0/.claude/spec/take2/dbt-conceptual-final-mockups.html +2113 -0
  9. dbt_conceptual-0.4.0/.claude/spec/take2/dbt-conceptual-specs.zip +0 -0
  10. dbt_conceptual-0.4.0/.claude/spec/take2/spec-application.md +1165 -0
  11. dbt_conceptual-0.4.0/.claude/spec/take2/spec-positioning.md +243 -0
  12. dbt_conceptual-0.4.0/.devcontainer/devcontainer.json +36 -0
  13. dbt_conceptual-0.4.0/.devcontainer/post-create.sh +33 -0
  14. dbt_conceptual-0.4.0/.devcontainer/starship.toml +61 -0
  15. dbt_conceptual-0.4.0/.github/BRANCH_PROTECTION.md +91 -0
  16. dbt_conceptual-0.4.0/.github/workflows/ci.yml +62 -0
  17. dbt_conceptual-0.4.0/.github/workflows/codecov.yml +34 -0
  18. dbt_conceptual-0.4.0/.github/workflows/feature.yml +171 -0
  19. dbt_conceptual-0.4.0/.github/workflows/pr.yml +264 -0
  20. dbt_conceptual-0.4.0/.github/workflows/publish.yml +34 -0
  21. dbt_conceptual-0.4.0/.gitignore +155 -0
  22. dbt_conceptual-0.4.0/CHANGELOG.md +118 -0
  23. dbt_conceptual-0.4.0/CLAUDE.md +71 -0
  24. dbt_conceptual-0.4.0/CODE_OF_CONDUCT.md +7 -0
  25. dbt_conceptual-0.4.0/CONTRIBUTING.md +131 -0
  26. dbt_conceptual-0.4.0/LICENSE +21 -0
  27. dbt_conceptual-0.4.0/PKG-INFO +583 -0
  28. dbt_conceptual-0.4.0/README.md +525 -0
  29. dbt_conceptual-0.4.0/SECURITY.md +34 -0
  30. dbt_conceptual-0.4.0/build-frontend.sh +39 -0
  31. dbt_conceptual-0.4.0/examples/README.md +53 -0
  32. dbt_conceptual-0.4.0/examples/sample-dbt-project/dbt_project.yml +6 -0
  33. dbt_conceptual-0.4.0/examples/sample-dbt-project/models/conceptual/conceptual.yml +48 -0
  34. dbt_conceptual-0.4.0/examples/sample-dbt-project/models/conceptual/layout.yml +8 -0
  35. dbt_conceptual-0.4.0/examples/sample-dbt-project/models/gold/dim_customer.yml +7 -0
  36. dbt_conceptual-0.4.0/examples/sample-dbt-project/models/gold/dim_product.yml +7 -0
  37. dbt_conceptual-0.4.0/examples/sample-dbt-project/models/gold/fact_orders.yml +10 -0
  38. dbt_conceptual-0.4.0/examples/sample-dbt-project/models/silver/dim_customer_crm.yml +7 -0
  39. dbt_conceptual-0.4.0/frontend/.gitignore +24 -0
  40. dbt_conceptual-0.4.0/frontend/README.md +73 -0
  41. dbt_conceptual-0.4.0/frontend/eslint.config.js +23 -0
  42. dbt_conceptual-0.4.0/frontend/index.html +13 -0
  43. dbt_conceptual-0.4.0/frontend/package-lock.json +3517 -0
  44. dbt_conceptual-0.4.0/frontend/package.json +32 -0
  45. dbt_conceptual-0.4.0/frontend/public/vite.svg +1 -0
  46. dbt_conceptual-0.4.0/frontend/src/App.css +42 -0
  47. dbt_conceptual-0.4.0/frontend/src/App.tsx +18 -0
  48. dbt_conceptual-0.4.0/frontend/src/assets/react.svg +1 -0
  49. dbt_conceptual-0.4.0/frontend/src/components/Canvas.tsx +152 -0
  50. dbt_conceptual-0.4.0/frontend/src/components/ConceptNode.tsx +94 -0
  51. dbt_conceptual-0.4.0/frontend/src/components/Modal.tsx +62 -0
  52. dbt_conceptual-0.4.0/frontend/src/components/ModelsTab.tsx +100 -0
  53. dbt_conceptual-0.4.0/frontend/src/components/PropertiesTab.tsx +255 -0
  54. dbt_conceptual-0.4.0/frontend/src/components/PropertyPanel.tsx +68 -0
  55. dbt_conceptual-0.4.0/frontend/src/components/RelationshipEdge.tsx +85 -0
  56. dbt_conceptual-0.4.0/frontend/src/components/SettingsModal.tsx +223 -0
  57. dbt_conceptual-0.4.0/frontend/src/components/Toolbar.tsx +28 -0
  58. dbt_conceptual-0.4.0/frontend/src/index.css +68 -0
  59. dbt_conceptual-0.4.0/frontend/src/main.tsx +10 -0
  60. dbt_conceptual-0.4.0/frontend/src/store.ts +139 -0
  61. dbt_conceptual-0.4.0/frontend/src/tokens.css +976 -0
  62. dbt_conceptual-0.4.0/frontend/src/types.ts +91 -0
  63. dbt_conceptual-0.4.0/frontend/tsconfig.app.json +28 -0
  64. dbt_conceptual-0.4.0/frontend/tsconfig.json +7 -0
  65. dbt_conceptual-0.4.0/frontend/tsconfig.node.json +26 -0
  66. dbt_conceptual-0.4.0/frontend/vite.config.ts +15 -0
  67. dbt_conceptual-0.4.0/pyproject.toml +129 -0
  68. dbt_conceptual-0.4.0/src/dbt_conceptual/__init__.py +3 -0
  69. dbt_conceptual-0.4.0/src/dbt_conceptual/cli.py +782 -0
  70. dbt_conceptual-0.4.0/src/dbt_conceptual/config.py +157 -0
  71. dbt_conceptual-0.4.0/src/dbt_conceptual/exporter/__init__.py +15 -0
  72. dbt_conceptual-0.4.0/src/dbt_conceptual/exporter/bus_matrix.py +341 -0
  73. dbt_conceptual-0.4.0/src/dbt_conceptual/exporter/coverage.py +552 -0
  74. dbt_conceptual-0.4.0/src/dbt_conceptual/exporter/excalidraw.py +272 -0
  75. dbt_conceptual-0.4.0/src/dbt_conceptual/exporter/mermaid.py +80 -0
  76. dbt_conceptual-0.4.0/src/dbt_conceptual/exporter/png.py +235 -0
  77. dbt_conceptual-0.4.0/src/dbt_conceptual/parser.py +267 -0
  78. dbt_conceptual-0.4.0/src/dbt_conceptual/scanner.py +158 -0
  79. dbt_conceptual-0.4.0/src/dbt_conceptual/server.py +454 -0
  80. dbt_conceptual-0.4.0/src/dbt_conceptual/state.py +138 -0
  81. dbt_conceptual-0.4.0/src/dbt_conceptual/static/assets/index-D2daszby.js +40 -0
  82. dbt_conceptual-0.4.0/src/dbt_conceptual/static/assets/index-cQhhTu-I.css +1 -0
  83. dbt_conceptual-0.4.0/src/dbt_conceptual/static/favicon-16x16.png +0 -0
  84. dbt_conceptual-0.4.0/src/dbt_conceptual/static/favicon-32x32.png +0 -0
  85. dbt_conceptual-0.4.0/src/dbt_conceptual/static/favicon-48x48.png +0 -0
  86. dbt_conceptual-0.4.0/src/dbt_conceptual/static/favicon.ico +0 -0
  87. dbt_conceptual-0.4.0/src/dbt_conceptual/static/favicon.png +0 -0
  88. dbt_conceptual-0.4.0/src/dbt_conceptual/static/favicon.svg +26 -0
  89. dbt_conceptual-0.4.0/src/dbt_conceptual/static/index.html +18 -0
  90. dbt_conceptual-0.4.0/src/dbt_conceptual/validator.py +387 -0
  91. dbt_conceptual-0.4.0/tests/__init__.py +1 -0
  92. dbt_conceptual-0.4.0/tests/test_cli.py +882 -0
  93. dbt_conceptual-0.4.0/tests/test_config.py +151 -0
  94. dbt_conceptual-0.4.0/tests/test_exporter.py +765 -0
  95. dbt_conceptual-0.4.0/tests/test_parser.py +329 -0
  96. dbt_conceptual-0.4.0/tests/test_scanner.py +198 -0
  97. dbt_conceptual-0.4.0/tests/test_server.py +330 -0
  98. dbt_conceptual-0.4.0/tests/test_state.py +136 -0
  99. dbt_conceptual-0.4.0/tests/test_validator.py +172 -0
@@ -0,0 +1,37 @@
1
+ # Collaboration Guidelines
2
+
3
+ ## Communication Protocol
4
+
5
+ ### When to Pause and Consult
6
+
7
+ **CRITICAL**: When encountering technical issues, architectural decisions, or design patterns, PAUSE and communicate with the user BEFORE implementing solutions.
8
+
9
+ The user is an architect with 30+ years of experience and may have:
10
+ - Established patterns to follow
11
+ - Architectural preferences
12
+ - Better solutions based on deep system knowledge
13
+ - Context that isn't visible in the code
14
+
15
+ ### Examples of When to Pause:
16
+ 1. **Mysterious/unexpected errors** - Like the duplicate key error we encountered
17
+ 2. **Multiple solution approaches** - Present options rather than choosing
18
+ 3. **Architectural decisions** - Database patterns, code organization, etc.
19
+ 4. **Performance issues** - May have existing patterns or constraints
20
+ 5. **Refactoring** - Discuss scope and approach first
21
+ 6. **Breaking changes** - Get approval before proceeding
22
+
23
+ ### Pattern: Pause → Discuss → Implement
24
+ 1. Identify the problem clearly
25
+ 2. Present 2-3 potential approaches (if obvious)
26
+ 3. Ask for guidance/preferences
27
+ 4. Implement the chosen solution
28
+
29
+ ## Lessons Learned
30
+
31
+ ### Orchestrator Pattern (Issue #40)
32
+ **Problem**: Multiple INSERT statements in one `run_query()` caused DuckDB parser confusion
33
+ **Solution**: User suggested orchestrator pattern - split into table-by-table sequential execution
34
+ **Takeaway**: User's architectural experience immediately identified the right pattern. Should have consulted earlier rather than debugging alone.
35
+
36
+ ---
37
+ Last Updated: 2026-01-17
@@ -0,0 +1,210 @@
1
+ # Claude Code Instructions
2
+
3
+ ## Overview
4
+
5
+ This project uses a spec-driven development workflow. Specs define what to build, GitHub Issues track the work, and all changes go through PRs with human approval.
6
+
7
+ **Your working context is in `.claude/`** - specs, and this instructions file.
8
+
9
+ ---
10
+
11
+ ## First Time Setup
12
+
13
+ If the GitHub repo doesn't exist yet, run:
14
+ ```bash
15
+ .claude/bootstrap.sh
16
+ ```
17
+
18
+ This creates the repo, labels, milestones, and branch protection.
19
+
20
+ ---
21
+
22
+ ## Workflow Rules
23
+
24
+ ### 0. CRITICAL: Never Commit to Main
25
+ - **NEVER commit directly to main branch**
26
+ - **ALWAYS create a feature branch first**
27
+ - **ALL changes must go through PR workflow**
28
+ - This applies to documentation, code, scripts - everything
29
+ - Exception: Only during initial bootstrap (before branch protection)
30
+
31
+ ### 1. Issue-First Development
32
+ - **NEVER code without a GitHub Issue**
33
+ - Read the spec for the current phase
34
+ - Create Issues from the spec using `gh issue create`
35
+ - Reference spec section in issue body
36
+
37
+ ### 2. Branch Strategy
38
+ ```
39
+ main (protected)
40
+ └── feature/<issue-number>-<short-description>
41
+ └── fix/<issue-number>-<short-description>
42
+ ```
43
+
44
+ Examples:
45
+ - `feature/1-add-pr-workflow`
46
+ - `feature/5-devcontainer`
47
+ - `fix/12-update-workflow-docs`
48
+
49
+ ### 3. Pre-Commit Checklist
50
+ Before ANY commit:
51
+ ```bash
52
+ # Lint shell scripts
53
+ shellcheck scripts/*.sh scripts/**/*.sh 2>/dev/null || true
54
+
55
+ # Lint YAML
56
+ yamllint .github/workflows/*.yml .yamllint.yml 2>/dev/null || true
57
+
58
+ # Check JSON
59
+ find . -name "*.json" -exec python -m json.tool {} \; >/dev/null
60
+
61
+ # Ensure scripts are executable
62
+ find . -name "*.sh" -exec chmod +x {} \;
63
+ ```
64
+
65
+ ### 4. Commit Messages
66
+ ```
67
+ <type>(<scope>): <subject>
68
+
69
+ <body>
70
+
71
+ Closes #<issue-number>
72
+ ```
73
+
74
+ Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
75
+
76
+ Examples:
77
+ - `feat(devcontainer): add GitHub Codespaces support`
78
+ - `docs(readme): add quick start guide`
79
+ - `chore(ci): add shellcheck to PR workflow`
80
+
81
+ ### 5. Pull Request Process
82
+ ```bash
83
+ # Create PR
84
+ gh pr create --title "feat: <description>" --body "Closes #<issue>"
85
+
86
+ # Check status
87
+ gh pr checks
88
+
89
+ # STOP - Wait for human approval
90
+ # NEVER merge without approval
91
+ ```
92
+
93
+ ### 6. Post-Merge Workflow
94
+ **IMMEDIATELY after PR is merged:**
95
+
96
+ See [POST_MERGE_CHECKLIST.md](.claude/POST_MERGE_CHECKLIST.md) for full details.
97
+
98
+ ```bash
99
+ # 1. Pull latest changes
100
+ git checkout main
101
+ git pull
102
+
103
+ # 2. Update STATUS.md
104
+ # - Mark completed tasks with ✅
105
+ # - Update "Current Phase" if phase is complete
106
+ # - Update "Next Steps" section
107
+ # - Update "Last Updated" date
108
+
109
+ # 3. Commit status update
110
+ git add .claude/STATUS.md
111
+ git commit -m "docs(status): update progress after PR #<number>
112
+
113
+ Updates STATUS.md to reflect completion of <task description>."
114
+ git push
115
+
116
+ # This keeps STATUS.md in sync and provides continuity across sessions
117
+ ```
118
+
119
+ ---
120
+
121
+ ## Working Through Phases
122
+
123
+ ### Current Status
124
+ **Check STATUS.md first:** `cat .claude/STATUS.md` or run `.claude/check-status.sh`
125
+
126
+ Also check milestones: `gh issue list --milestone "Phase 00: Bootstrap"`
127
+
128
+ ### Phase Order
129
+ 1. `00_bootstrap.md` - Repo setup, CI, templates
130
+ 2. `01_project_structure.md` - Devcontainer, common.sh
131
+ 3. `02_azure_provisioning.md` - Azure CLI scripts
132
+ 4. `03_database_configuration.md` - Schemas, users, CT
133
+ 5. `04_seed_data.md` - Baseline data
134
+ 6. `05_delta_scripts.md` - Change simulation
135
+ 7. `06_utilities.md` - Reset, verify scripts
136
+ 8. `07_databricks_integration.md` - Lakeflow setup
137
+ 9. `08_documentation_polish.md` - Final docs
138
+
139
+ ### Starting a Phase
140
+ ```bash
141
+ # 0. Check current status
142
+ cat .claude/STATUS.md
143
+
144
+ # 1. Read the spec
145
+ cat .claude/specs/XX_name.md
146
+
147
+ # 2. Update STATUS.md - mark phase as "IN PROGRESS"
148
+ # Create a feature branch for the STATUS.md update
149
+ git checkout -b fix/<issue-num>-update-status
150
+ # Edit .claude/STATUS.md to update current phase
151
+ # Commit and create PR for status update
152
+
153
+ # 3. Create issues for that phase
154
+ gh issue create --title "..." --label "enhancement,phase-XX" --milestone "Phase XX: Name"
155
+
156
+ # 4. Work each issue - ALWAYS on a feature branch
157
+ git checkout -b feature/<issue-num>-<desc>
158
+ # ... implement ...
159
+ git add . && git commit -m "feat(scope): description
160
+
161
+ Closes #<issue>"
162
+ git push -u origin HEAD
163
+ gh pr create
164
+ # WAIT for approval
165
+
166
+ # 5. After PR merged - Update STATUS.md (see "Post-Merge Workflow")
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Quick Reference
172
+
173
+ ```bash
174
+ # Check project status
175
+ cat .claude/STATUS.md
176
+ ./.claude/check-status.sh
177
+
178
+ # List open issues
179
+ gh issue list
180
+
181
+ # List issues for current phase
182
+ gh issue list --milestone "Phase 00: Bootstrap"
183
+
184
+ # Create issue
185
+ gh issue create --title "Title" --body "Description" --label "enhancement"
186
+
187
+ # Create branch
188
+ git checkout -b feature/42-short-description
189
+
190
+ # Create PR
191
+ gh pr create --fill
192
+
193
+ # Check PR status
194
+ gh pr checks
195
+
196
+ # View PR
197
+ gh pr view --web
198
+ ```
199
+
200
+ ---
201
+
202
+ ## Important Notes
203
+
204
+ - **NEVER commit directly to main** - always use feature/fix branches and PRs
205
+ - **Human (F) must approve all PRs** - never merge yourself
206
+ - **Always update STATUS.md after PR merge** - this ensures continuity across container rebuilds and sessions
207
+ - If unsure about spec details, ask via Issue comment
208
+ - Keep PRs focused - one issue per PR
209
+ - Write tests alongside implementation
210
+ - Document as you go
@@ -0,0 +1,66 @@
1
+ # Post-Merge Checklist
2
+
3
+ Run this checklist **IMMEDIATELY** after every PR merge to maintain project continuity.
4
+
5
+ ## Steps
6
+
7
+ ### 1. Pull Latest Changes
8
+ ```bash
9
+ git checkout main
10
+ git pull
11
+ ```
12
+
13
+ ### 2. Update STATUS.md
14
+ Open [.claude/STATUS.md](.claude/STATUS.md) and update:
15
+
16
+ - [ ] Mark completed task with ✅
17
+ - [ ] Update "Last Updated" date to today
18
+ - [ ] If issue closes a phase, update "Current Phase" section
19
+ - [ ] Update "Next Steps" section with next tasks
20
+ - [ ] Add any relevant notes about the work completed
21
+
22
+ ### 3. Commit Status Update
23
+ ```bash
24
+ git add .claude/STATUS.md
25
+ git commit -m "docs(status): update progress after PR #<number>
26
+
27
+ Updates STATUS.md to reflect completion of <brief task description>."
28
+ git push
29
+ ```
30
+
31
+ ### 4. Verify Update
32
+ ```bash
33
+ # Quick check that status is updated
34
+ cat .claude/STATUS.md
35
+ ```
36
+
37
+ ## Why This Matters
38
+
39
+ **STATUS.md provides continuity across:**
40
+ - Container rebuilds (local or Codespaces)
41
+ - Different Claude Code sessions
42
+ - Context switches (you leave and come back later)
43
+ - Handoffs between human and AI
44
+
45
+ Without this discipline, we lose track of progress and may duplicate work or miss tasks.
46
+
47
+ ## Template for STATUS.md Updates
48
+
49
+ When marking a phase section:
50
+ ```markdown
51
+ ### Phase XX: Name ✅
52
+ - [x] Task description (#issue-number)
53
+ - [x] Another task (#issue-number)
54
+ ```
55
+
56
+ When updating Next Steps:
57
+ ```markdown
58
+ ## Next Steps
59
+
60
+ ### Phase XX: Name
61
+ Status: **IN PROGRESS** | **READY TO START** | **BLOCKED** (reason)
62
+
63
+ Tasks to create:
64
+ 1. Description
65
+ 2. Description
66
+ ```
@@ -0,0 +1,89 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(python3 -m pip install:*)",
5
+ "Bash(python3 -m pytest:*)",
6
+ "Bash(dbt-conceptual:*)",
7
+ "Bash(wc:*)",
8
+ "Bash(black --check:*)",
9
+ "Bash(black:*)",
10
+ "Bash(ruff check:*)",
11
+ "Bash(mypy:*)",
12
+ "Bash(python3 -m build:*)",
13
+ "Bash(pytest:*)",
14
+ "Bash(python3:*)",
15
+ "Bash(python -m pytest:*)",
16
+ "Bash(open htmlcov/index.html)",
17
+ "Bash(pip3 index:*)",
18
+ "Bash(git add:*)",
19
+ "Bash(git commit:*)",
20
+ "Bash(git push:*)",
21
+ "Bash(gh release create:*)",
22
+ "Bash(gh run view:*)",
23
+ "Bash(git checkout:*)",
24
+ "Bash(gh pr create:*)",
25
+ "Bash(git remote:*)",
26
+ "Bash(brew install:*)",
27
+ "Bash(grep:*)",
28
+ "Bash(chmod:*)",
29
+ "Bash(tar czf:*)",
30
+ "Bash(git merge:*)",
31
+ "Bash(git pull:*)",
32
+ "Bash(git tag:*)",
33
+ "Bash(npm install:*)",
34
+ "Bash(curl:*)",
35
+ "Bash(bash)",
36
+ "Bash(export NVM_DIR=\"$HOME/.nvm\")",
37
+ "Bash([ -s \"$NVM_DIR/nvm.sh\" ])",
38
+ "Bash(. \"$NVM_DIR/nvm.sh\")",
39
+ "Bash(nvm install:*)",
40
+ "Bash(nvm use:*)",
41
+ "Bash(npm run build:*)",
42
+ "Bash(./build-frontend.sh:*)",
43
+ "Bash(pkill:*)",
44
+ "Bash(source ~/.nvm/nvm.sh)",
45
+ "Bash(/Users/feriksen/repos/dbt-conceptual/build-frontend.sh)",
46
+ "Bash(perl -i -pe:*)",
47
+ "Bash(dbt parse:*)",
48
+ "Bash(/opt/homebrew/bin/npm run build)",
49
+ "Bash(ls:*)",
50
+ "Bash(~/.nvm/versions/node/v18.20.8/bin/npm run build)",
51
+ "Bash(PATH=~/.nvm/versions/node/v18.20.8/bin:$PATH npm run build:*)",
52
+ "Bash(PATH=~/.nvm/versions/node/v18.20.8/bin:$PATH ~/.nvm/versions/node/v18.20.8/bin/node ~/.nvm/versions/node/v18.20.8/lib/node_modules/npm/bin/npm-cli.js run build:*)",
53
+ "Bash(SHELL=/bin/zsh PATH=~/.nvm/versions/node/v18.20.8/bin:/bin:/usr/bin:$PATH ~/.nvm/versions/node/v18.20.8/bin/npm run build:*)",
54
+ "Bash(PATH=~/.nvm/versions/node/v18.20.8/bin:$PATH SHELL=/bin/zsh ~/.nvm/versions/node/v18.20.8/bin/node:*)",
55
+ "Bash(source ~/.zshrc)",
56
+ "Bash(dbt list:*)",
57
+ "Bash(open:*)",
58
+ "Bash(Interactive Conceptual Modeler\"\n- Always display all three medallion badges \\(bronze/silver/gold\\) even at count 0\n- Move status indicator to top-right corner of concept boxes\n\nThe Databricks logo usage is for educational/descriptive purposes to represent\nmedallion architecture patterns. Custom green favicon provides distinct brand\nidentity while avoiding trademark issues.\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>\nEOF\n\\)\")",
59
+ "Bash(bash:*)",
60
+ "Bash(sh)",
61
+ "Bash(export PATH=\"$HOME/.local/bin:$PATH\")",
62
+ "Bash(gh:*)",
63
+ "Bash($HOME/.local/bin/gh auth status)",
64
+ "Bash(/usr/bin/git remote -v)",
65
+ "Bash(/usr/bin/git status)",
66
+ "Bash(/usr/bin/git add src/dbt_conceptual/exporter/png.py)",
67
+ "Bash(/usr/bin/git commit:*)",
68
+ "Bash(/usr/bin/git push origin feature/model-management)",
69
+ "Bash($HOME/.local/bin/gh pr list --head feature/model-management)",
70
+ "Bash($HOME/.local/bin/gh:*)",
71
+ "Bash(/usr/bin/git log main..HEAD --oneline)",
72
+ "Bash(~/.local/bin/gh run view 21068086918 --log-failed)",
73
+ "Bash(~/.local/bin/gh pr checks 3 --watch)",
74
+ "Bash(~/.local/bin/gh run view 21070050063 --log-failed)",
75
+ "Bash(/usr/bin/git add -A)",
76
+ "Bash(~/.local/bin/gh run view 21070102277 --log-failed)",
77
+ "Bash(~/.local/bin/gh run view 21070171744 --log-failed)",
78
+ "Bash(~/.local/bin/gh pr view 3 --json state,statusCheckRollup)",
79
+ "Bash(~/.local/bin/gh run view 21070862964 --log-failed)",
80
+ "Bash(~/.local/bin/gh pr checks 3)",
81
+ "Bash(~/.local/bin/gh run view 21071522933 --log-failed)",
82
+ "Bash(git fetch:*)",
83
+ "Bash(npm create:*)",
84
+ "Bash(node:*)",
85
+ "Bash(npm --version:*)",
86
+ "Bash(apt-get install:*)"
87
+ ]
88
+ }
89
+ }