@techierathore/techieflow 1.0.0
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.
- package/.claude/commands/TechieFlow/agents/analyst.md +97 -0
- package/.claude/commands/TechieFlow/agents/architect.md +84 -0
- package/.claude/commands/TechieFlow/agents/flow-master.md +217 -0
- package/.claude/commands/TechieFlow/agents/verifier.md +72 -0
- package/.claude/commands/TechieFlow/tasks/_metrics-emit-gate.md +138 -0
- package/.claude/commands/TechieFlow/tasks/_smoke-test-policy.md +98 -0
- package/.claude/commands/TechieFlow/tasks/_status-update-gate.md +78 -0
- package/.claude/commands/TechieFlow/tasks/_yolo-mode.md +77 -0
- package/.claude/commands/TechieFlow/tasks/advanced-elicitation.md +117 -0
- package/.claude/commands/TechieFlow/tasks/amend-docs.md +149 -0
- package/.claude/commands/TechieFlow/tasks/author-brd.md +79 -0
- package/.claude/commands/TechieFlow/tasks/build-phase.md +231 -0
- package/.claude/commands/TechieFlow/tasks/create-deep-research-prompt.md +278 -0
- package/.claude/commands/TechieFlow/tasks/create-doc.md +101 -0
- package/.claude/commands/TechieFlow/tasks/day1-brownfield.md +507 -0
- package/.claude/commands/TechieFlow/tasks/day1-greenfield.md +224 -0
- package/.claude/commands/TechieFlow/tasks/devguide.md +224 -0
- package/.claude/commands/TechieFlow/tasks/document-project.md +343 -0
- package/.claude/commands/TechieFlow/tasks/execute-checklist.md +86 -0
- package/.claude/commands/TechieFlow/tasks/facilitate-brainstorming-session.md +136 -0
- package/.claude/commands/TechieFlow/tasks/fix-issues.md +134 -0
- package/.claude/commands/TechieFlow/tasks/generate-html.md +115 -0
- package/.claude/commands/TechieFlow/tasks/handoff-phase.md +126 -0
- package/.claude/commands/TechieFlow/tasks/index-docs.md +173 -0
- package/.claude/commands/TechieFlow/tasks/kb-mode-interaction.md +75 -0
- package/.claude/commands/TechieFlow/tasks/log-miss.md +160 -0
- package/.claude/commands/TechieFlow/tasks/metrics-report.md +143 -0
- package/.claude/commands/TechieFlow/tasks/mockups.md +122 -0
- package/.claude/commands/TechieFlow/tasks/productguide.md +105 -0
- package/.claude/commands/TechieFlow/tasks/refresh-status.md +135 -0
- package/.claude/commands/TechieFlow/tasks/render-workflow-docs.md +117 -0
- package/.claude/commands/TechieFlow/tasks/shard-doc.md +185 -0
- package/.claude/commands/TechieFlow/tasks/split-brd.md +131 -0
- package/.claude/commands/TechieFlow/tasks/triage-issues.md +157 -0
- package/.claude/commands/TechieFlow/tasks/verify-phase.md +579 -0
- package/.claude/commands/generate-html.md +124 -0
- package/.codex/config.toml +46 -0
- package/.codex/hooks.json +63 -0
- package/.codex/rules/techieflow.rules +8 -0
- package/.opencode/command/generate-html.md +129 -0
- package/.opencode/plugin/techieflow.js +350 -0
- package/.tfcore/TOKEN-GUIDE.md +59 -0
- package/.tfcore/agents/analyst.md +97 -0
- package/.tfcore/agents/architect.md +84 -0
- package/.tfcore/agents/flow-master.md +217 -0
- package/.tfcore/agents/verifier.md +72 -0
- package/.tfcore/checklists/architect-checklist.md +438 -0
- package/.tfcore/core-config.yaml +47 -0
- package/.tfcore/data/brainstorming-techniques.md +36 -0
- package/.tfcore/data/elicitation-methods.md +154 -0
- package/.tfcore/data/techieflow-kb.md +807 -0
- package/.tfcore/data/technical-preferences.md +3 -0
- package/.tfcore/enhanced-ide-development-workflow.md +248 -0
- package/.tfcore/hooks/block-git.sh +301 -0
- package/.tfcore/hooks/codex-adapter.py +248 -0
- package/.tfcore/hooks/guard-artifacts.sh +101 -0
- package/.tfcore/hooks/guard-status-html.sh +102 -0
- package/.tfcore/hooks/guard-status.sh +124 -0
- package/.tfcore/hooks/guard-verify.sh +108 -0
- package/.tfcore/hooks/metrics-session.sh +129 -0
- package/.tfcore/hooks/session-pointer.sh +52 -0
- package/.tfcore/hooks/sweep-artifacts.sh +198 -0
- package/.tfcore/install-manifest.yaml +231 -0
- package/.tfcore/routing.yaml +105 -0
- package/.tfcore/tasks/_metrics-emit-gate.md +138 -0
- package/.tfcore/tasks/_smoke-test-policy.md +98 -0
- package/.tfcore/tasks/_status-update-gate.md +78 -0
- package/.tfcore/tasks/_yolo-mode.md +77 -0
- package/.tfcore/tasks/advanced-elicitation.md +117 -0
- package/.tfcore/tasks/amend-docs.md +149 -0
- package/.tfcore/tasks/author-brd.md +79 -0
- package/.tfcore/tasks/build-phase.md +231 -0
- package/.tfcore/tasks/create-deep-research-prompt.md +278 -0
- package/.tfcore/tasks/create-doc.md +101 -0
- package/.tfcore/tasks/day1-brownfield.md +507 -0
- package/.tfcore/tasks/day1-greenfield.md +224 -0
- package/.tfcore/tasks/devguide.md +224 -0
- package/.tfcore/tasks/document-project.md +343 -0
- package/.tfcore/tasks/execute-checklist.md +86 -0
- package/.tfcore/tasks/facilitate-brainstorming-session.md +136 -0
- package/.tfcore/tasks/fix-issues.md +134 -0
- package/.tfcore/tasks/generate-html.md +115 -0
- package/.tfcore/tasks/handoff-phase.md +126 -0
- package/.tfcore/tasks/index-docs.md +173 -0
- package/.tfcore/tasks/kb-mode-interaction.md +75 -0
- package/.tfcore/tasks/log-miss.md +160 -0
- package/.tfcore/tasks/metrics-report.md +143 -0
- package/.tfcore/tasks/mockups.md +122 -0
- package/.tfcore/tasks/productguide.md +105 -0
- package/.tfcore/tasks/refresh-status.md +135 -0
- package/.tfcore/tasks/render-workflow-docs.md +117 -0
- package/.tfcore/tasks/shard-doc.md +185 -0
- package/.tfcore/tasks/split-brd.md +131 -0
- package/.tfcore/tasks/triage-issues.md +157 -0
- package/.tfcore/tasks/verify-phase.md +579 -0
- package/.tfcore/telemetry/SCHEMA.md +678 -0
- package/.tfcore/telemetry/install-metrics.sh +390 -0
- package/.tfcore/telemetry/pre-commit +94 -0
- package/.tfcore/telemetry/tf-metrics.sh +1415 -0
- package/.tfcore/templates/architecture-tmpl.yaml +650 -0
- package/.tfcore/templates/brainstorming-output-tmpl.yaml +156 -0
- package/.tfcore/templates/brownfield-architecture-tmpl.yaml +476 -0
- package/.tfcore/templates/competitor-analysis-tmpl.yaml +306 -0
- package/.tfcore/templates/front-end-architecture-tmpl.yaml +218 -0
- package/.tfcore/templates/fullstack-architecture-tmpl.yaml +823 -0
- package/.tfcore/templates/market-research-tmpl.yaml +252 -0
- package/.tfcore/templates/project-brief-tmpl.yaml +221 -0
- package/.tfcore/templates/v4custom/app-agents-md-tmpl.md +61 -0
- package/.tfcore/templates/v4custom/app-architecture-tmpl.md +127 -0
- package/.tfcore/templates/v4custom/app-brd-tmpl.md +204 -0
- package/.tfcore/templates/v4custom/app-checklist-tmpl.md +90 -0
- package/.tfcore/templates/v4custom/app-claude-md-tmpl.md +33 -0
- package/.tfcore/templates/v4custom/app-devguide-tmpl.md +167 -0
- package/.tfcore/templates/v4custom/app-editorconfig-tmpl.editorconfig +44 -0
- package/.tfcore/templates/v4custom/app-library-feedback-tmpl.md +31 -0
- package/.tfcore/templates/v4custom/app-productguide-tmpl.md +54 -0
- package/.tfcore/templates/v4custom/app-project-status-tmpl.md +98 -0
- package/.tfcore/templates/v4custom/app-uidesign-tmpl.md +48 -0
- package/.tfcore/templates/v4custom/app-usageguide-tmpl.md +67 -0
- package/.tfcore/templates/v4custom/build-invocation-ladder.md +190 -0
- package/.tfcore/templates/v4custom/html-render-shell.md +502 -0
- package/.tfcore/templates/v4custom/metrics-report-template.md +273 -0
- package/.tfcore/templates/v4custom/opencode-operating-contract.md +56 -0
- package/.tfcore/user-guide.md +633 -0
- package/.tfcore/utils/techieflow-doc-template.md +325 -0
- package/.tfcore/utils/tf-assets.sh +310 -0
- package/.tfcore/utils/tf-codex-bind.py +196 -0
- package/.tfcore/utils/tf-codex-telemetry.py +60 -0
- package/.tfcore/utils/tf-emit.sh +1075 -0
- package/.tfcore/utils/tf-gitignore-audit.sh +281 -0
- package/.tfcore/utils/tf-goal.sh +421 -0
- package/.tfcore/utils/tf-harness.sh +160 -0
- package/.tfcore/utils/tf-mockup-parity.mjs +555 -0
- package/.tfcore/utils/tf-mockup-parity.sh +65 -0
- package/.tfcore/utils/tf-opencode-audit.py +126 -0
- package/.tfcore/utils/tf-perf.sh +241 -0
- package/.tfcore/utils/tf-render-html.py +715 -0
- package/.tfcore/utils/tf-render-html.sh +28 -0
- package/.tfcore/utils/tf-routing-bind.sh +216 -0
- package/.tfcore/utils/tf-routing.sh +247 -0
- package/.tfcore/utils/tf-yolo.sh +119 -0
- package/.tfcore/working-in-the-brownfield.md +606 -0
- package/LICENSE +201 -0
- package/README.md +1212 -0
- package/WORKFLOW.html +1986 -0
- package/docs/TechieFlow-Installation.md +299 -0
- package/opencode.jsonc +929 -0
- package/package.json +60 -0
- package/scripts/install.mjs +992 -0
- package/scripts/test-install.mjs +505 -0
- package/scripts/validate.mjs +155 -0
package/opencode.jsonc
ADDED
|
@@ -0,0 +1,929 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opencode.ai/config.json",
|
|
3
|
+
"instructions": [
|
|
4
|
+
".tfcore/core-config.yaml",
|
|
5
|
+
".tfcore/templates/v4custom/build-invocation-ladder.md",
|
|
6
|
+
".tfcore/templates/v4custom/opencode-operating-contract.md",
|
|
7
|
+
"AGENTS.md"
|
|
8
|
+
],
|
|
9
|
+
// Solo-dev TechieFlow v4: only the agents the compressed workflow actually uses.
|
|
10
|
+
// Stock story-flow agents (dev/pm/po/qa/sm/ux-expert) were trimmed 2026-06-12
|
|
11
|
+
// and are no longer included.
|
|
12
|
+
//
|
|
13
|
+
// NOTE on `tools` vs `permission`: the legacy `tools` key (e.g.
|
|
14
|
+
// {write/edit/bash: true}) is deprecated and auto-normalized to a `permission`
|
|
15
|
+
// block, and listing only three tools left read/grep/glob/task at their
|
|
16
|
+
// defaults anyway. We use `permission` explicitly so intent is unambiguous.
|
|
17
|
+
//
|
|
18
|
+
// NOTE on git/gh: "GIT IS MANUAL" is enforced here for OpenCode the same way
|
|
19
|
+
// `.claude/settings.json` + block-git.sh enforce it for Claude Code. Since
|
|
20
|
+
// 2026-08-21 (YOLO / goal mode, .tfcore/tasks/_yolo-mode.md) the permission
|
|
21
|
+
// map denies only git/gh WRITES (commit/push/add/reset/checkout/… and gh
|
|
22
|
+
// pr|issue|repo|release create/merge/close/…) — those are blocked in EVERY
|
|
23
|
+
// mode. READ-ONLY git/gh (status/log/diff/blame, gh pr list/view) is decided
|
|
24
|
+
// by the plugin-bridged block-git.sh: blocked outside YOLO, allowed in YOLO.
|
|
25
|
+
// The `rm */rmdir */sudo *` asks stay here; in YOLO the plugin's
|
|
26
|
+
// `permission.ask` hook auto-approves them (and `opencode run --auto`
|
|
27
|
+
// approves everything not denied). Verified at runtime (2026-08-20, OpenCode
|
|
28
|
+
// 1.18.18): compound forms like `cd x && git log` ARE caught — OpenCode
|
|
29
|
+
// tree-sitter-parses the command and checks each node.
|
|
30
|
+
// TWO FOOTGUNS (both proven, DECISIONS.md 2026-08-19 §7):
|
|
31
|
+
// 1. LAST matching rule wins. `"*": "allow"` must stay FIRST in every bash
|
|
32
|
+
// map; written after the denies it silently disables them.
|
|
33
|
+
// 2. Agent-level `permission` rules are appended AFTER the root ruleset, so
|
|
34
|
+
// a bare `"bash": "allow"` on an agent VOIDS the root git/gh denies for
|
|
35
|
+
// that agent. Every agent below therefore repeats the full deny map —
|
|
36
|
+
// never collapse it back to `"bash": "allow"`.
|
|
37
|
+
// Defense in depth: .opencode/plugin/techieflow.js additionally runs
|
|
38
|
+
// block-git.sh (throw = block) upstream of this permission check.
|
|
39
|
+
"permission": {
|
|
40
|
+
"bash": {
|
|
41
|
+
"*": "allow",
|
|
42
|
+
"git commit*": "deny",
|
|
43
|
+
"git push*": "deny",
|
|
44
|
+
"git add*": "deny",
|
|
45
|
+
"git rm*": "deny",
|
|
46
|
+
"git mv*": "deny",
|
|
47
|
+
"git reset*": "deny",
|
|
48
|
+
"git checkout*": "deny",
|
|
49
|
+
"git switch*": "deny",
|
|
50
|
+
"git restore*": "deny",
|
|
51
|
+
"git merge*": "deny",
|
|
52
|
+
"git rebase*": "deny",
|
|
53
|
+
"git cherry-pick*": "deny",
|
|
54
|
+
"git revert*": "deny",
|
|
55
|
+
"git clean*": "deny",
|
|
56
|
+
"git am*": "deny",
|
|
57
|
+
"git apply*": "deny",
|
|
58
|
+
"git init*": "deny",
|
|
59
|
+
"git clone*": "deny",
|
|
60
|
+
"git pull*": "deny",
|
|
61
|
+
"git fetch*": "deny",
|
|
62
|
+
"git filter-branch*": "deny",
|
|
63
|
+
"git filter-repo*": "deny",
|
|
64
|
+
"git gc*": "deny",
|
|
65
|
+
"git prune*": "deny",
|
|
66
|
+
"git update-ref*": "deny",
|
|
67
|
+
"git symbolic-ref*": "deny",
|
|
68
|
+
"git replace*": "deny",
|
|
69
|
+
"git update-index*": "deny",
|
|
70
|
+
"git commit-tree*": "deny",
|
|
71
|
+
"git write-tree*": "deny",
|
|
72
|
+
"git read-tree*": "deny",
|
|
73
|
+
"git fast-import*": "deny",
|
|
74
|
+
"git send-email*": "deny",
|
|
75
|
+
"git request-pull*": "deny",
|
|
76
|
+
"git svn*": "deny",
|
|
77
|
+
"gh pr create*": "deny",
|
|
78
|
+
"gh pr merge*": "deny",
|
|
79
|
+
"gh pr close*": "deny",
|
|
80
|
+
"gh pr edit*": "deny",
|
|
81
|
+
"gh pr comment*": "deny",
|
|
82
|
+
"gh pr review*": "deny",
|
|
83
|
+
"gh pr ready*": "deny",
|
|
84
|
+
"gh pr reopen*": "deny",
|
|
85
|
+
"gh pr lock*": "deny",
|
|
86
|
+
"gh pr unlock*": "deny",
|
|
87
|
+
"gh pr update-branch*": "deny",
|
|
88
|
+
"gh pr checkout*": "deny",
|
|
89
|
+
"gh issue create*": "deny",
|
|
90
|
+
"gh issue close*": "deny",
|
|
91
|
+
"gh issue edit*": "deny",
|
|
92
|
+
"gh issue comment*": "deny",
|
|
93
|
+
"gh issue delete*": "deny",
|
|
94
|
+
"gh issue reopen*": "deny",
|
|
95
|
+
"gh issue pin*": "deny",
|
|
96
|
+
"gh issue unpin*": "deny",
|
|
97
|
+
"gh issue lock*": "deny",
|
|
98
|
+
"gh issue unlock*": "deny",
|
|
99
|
+
"gh issue transfer*": "deny",
|
|
100
|
+
"gh issue develop*": "deny",
|
|
101
|
+
"gh repo create*": "deny",
|
|
102
|
+
"gh repo delete*": "deny",
|
|
103
|
+
"gh repo fork*": "deny",
|
|
104
|
+
"gh repo clone*": "deny",
|
|
105
|
+
"gh repo edit*": "deny",
|
|
106
|
+
"gh repo sync*": "deny",
|
|
107
|
+
"gh repo archive*": "deny",
|
|
108
|
+
"gh repo unarchive*": "deny",
|
|
109
|
+
"gh repo rename*": "deny",
|
|
110
|
+
"gh repo set-default*": "deny",
|
|
111
|
+
"gh repo deploy-key add*": "deny",
|
|
112
|
+
"gh repo deploy-key delete*": "deny",
|
|
113
|
+
"gh release create*": "deny",
|
|
114
|
+
"gh release delete*": "deny",
|
|
115
|
+
"gh release upload*": "deny",
|
|
116
|
+
"gh release edit*": "deny",
|
|
117
|
+
"gh workflow run*": "deny",
|
|
118
|
+
"gh workflow enable*": "deny",
|
|
119
|
+
"gh workflow disable*": "deny",
|
|
120
|
+
"gh run cancel*": "deny",
|
|
121
|
+
"gh run rerun*": "deny",
|
|
122
|
+
"gh run delete*": "deny",
|
|
123
|
+
"gh secret set*": "deny",
|
|
124
|
+
"gh secret delete*": "deny",
|
|
125
|
+
"gh variable set*": "deny",
|
|
126
|
+
"gh variable delete*": "deny",
|
|
127
|
+
"gh label create*": "deny",
|
|
128
|
+
"gh label delete*": "deny",
|
|
129
|
+
"gh label edit*": "deny",
|
|
130
|
+
"gh auth login*": "deny",
|
|
131
|
+
"gh auth logout*": "deny",
|
|
132
|
+
"gh auth refresh*": "deny",
|
|
133
|
+
"gh auth setup-git*": "deny",
|
|
134
|
+
"gh gist create*": "deny",
|
|
135
|
+
"gh gist delete*": "deny",
|
|
136
|
+
"gh gist edit*": "deny",
|
|
137
|
+
"gh ssh-key add*": "deny",
|
|
138
|
+
"gh gpg-key add*": "deny",
|
|
139
|
+
"gh cache delete*": "deny",
|
|
140
|
+
"rm *": "ask",
|
|
141
|
+
"rmdir *": "ask",
|
|
142
|
+
"sudo *": "ask"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"agent": {
|
|
146
|
+
"flow-master": {
|
|
147
|
+
"prompt": "{file:./.tfcore/agents/flow-master.md}",
|
|
148
|
+
"mode": "primary",
|
|
149
|
+
"permission": {
|
|
150
|
+
"edit": "allow",
|
|
151
|
+
"bash": {
|
|
152
|
+
"*": "allow",
|
|
153
|
+
"git commit*": "deny",
|
|
154
|
+
"git push*": "deny",
|
|
155
|
+
"git add*": "deny",
|
|
156
|
+
"git rm*": "deny",
|
|
157
|
+
"git mv*": "deny",
|
|
158
|
+
"git reset*": "deny",
|
|
159
|
+
"git checkout*": "deny",
|
|
160
|
+
"git switch*": "deny",
|
|
161
|
+
"git restore*": "deny",
|
|
162
|
+
"git merge*": "deny",
|
|
163
|
+
"git rebase*": "deny",
|
|
164
|
+
"git cherry-pick*": "deny",
|
|
165
|
+
"git revert*": "deny",
|
|
166
|
+
"git clean*": "deny",
|
|
167
|
+
"git am*": "deny",
|
|
168
|
+
"git apply*": "deny",
|
|
169
|
+
"git init*": "deny",
|
|
170
|
+
"git clone*": "deny",
|
|
171
|
+
"git pull*": "deny",
|
|
172
|
+
"git fetch*": "deny",
|
|
173
|
+
"git filter-branch*": "deny",
|
|
174
|
+
"git filter-repo*": "deny",
|
|
175
|
+
"git gc*": "deny",
|
|
176
|
+
"git prune*": "deny",
|
|
177
|
+
"git update-ref*": "deny",
|
|
178
|
+
"git symbolic-ref*": "deny",
|
|
179
|
+
"git replace*": "deny",
|
|
180
|
+
"git update-index*": "deny",
|
|
181
|
+
"git commit-tree*": "deny",
|
|
182
|
+
"git write-tree*": "deny",
|
|
183
|
+
"git read-tree*": "deny",
|
|
184
|
+
"git fast-import*": "deny",
|
|
185
|
+
"git send-email*": "deny",
|
|
186
|
+
"git request-pull*": "deny",
|
|
187
|
+
"git svn*": "deny",
|
|
188
|
+
"gh pr create*": "deny",
|
|
189
|
+
"gh pr merge*": "deny",
|
|
190
|
+
"gh pr close*": "deny",
|
|
191
|
+
"gh pr edit*": "deny",
|
|
192
|
+
"gh pr comment*": "deny",
|
|
193
|
+
"gh pr review*": "deny",
|
|
194
|
+
"gh pr ready*": "deny",
|
|
195
|
+
"gh pr reopen*": "deny",
|
|
196
|
+
"gh pr lock*": "deny",
|
|
197
|
+
"gh pr unlock*": "deny",
|
|
198
|
+
"gh pr update-branch*": "deny",
|
|
199
|
+
"gh pr checkout*": "deny",
|
|
200
|
+
"gh issue create*": "deny",
|
|
201
|
+
"gh issue close*": "deny",
|
|
202
|
+
"gh issue edit*": "deny",
|
|
203
|
+
"gh issue comment*": "deny",
|
|
204
|
+
"gh issue delete*": "deny",
|
|
205
|
+
"gh issue reopen*": "deny",
|
|
206
|
+
"gh issue pin*": "deny",
|
|
207
|
+
"gh issue unpin*": "deny",
|
|
208
|
+
"gh issue lock*": "deny",
|
|
209
|
+
"gh issue unlock*": "deny",
|
|
210
|
+
"gh issue transfer*": "deny",
|
|
211
|
+
"gh issue develop*": "deny",
|
|
212
|
+
"gh repo create*": "deny",
|
|
213
|
+
"gh repo delete*": "deny",
|
|
214
|
+
"gh repo fork*": "deny",
|
|
215
|
+
"gh repo clone*": "deny",
|
|
216
|
+
"gh repo edit*": "deny",
|
|
217
|
+
"gh repo sync*": "deny",
|
|
218
|
+
"gh repo archive*": "deny",
|
|
219
|
+
"gh repo unarchive*": "deny",
|
|
220
|
+
"gh repo rename*": "deny",
|
|
221
|
+
"gh repo set-default*": "deny",
|
|
222
|
+
"gh repo deploy-key add*": "deny",
|
|
223
|
+
"gh repo deploy-key delete*": "deny",
|
|
224
|
+
"gh release create*": "deny",
|
|
225
|
+
"gh release delete*": "deny",
|
|
226
|
+
"gh release upload*": "deny",
|
|
227
|
+
"gh release edit*": "deny",
|
|
228
|
+
"gh workflow run*": "deny",
|
|
229
|
+
"gh workflow enable*": "deny",
|
|
230
|
+
"gh workflow disable*": "deny",
|
|
231
|
+
"gh run cancel*": "deny",
|
|
232
|
+
"gh run rerun*": "deny",
|
|
233
|
+
"gh run delete*": "deny",
|
|
234
|
+
"gh secret set*": "deny",
|
|
235
|
+
"gh secret delete*": "deny",
|
|
236
|
+
"gh variable set*": "deny",
|
|
237
|
+
"gh variable delete*": "deny",
|
|
238
|
+
"gh label create*": "deny",
|
|
239
|
+
"gh label delete*": "deny",
|
|
240
|
+
"gh label edit*": "deny",
|
|
241
|
+
"gh auth login*": "deny",
|
|
242
|
+
"gh auth logout*": "deny",
|
|
243
|
+
"gh auth refresh*": "deny",
|
|
244
|
+
"gh auth setup-git*": "deny",
|
|
245
|
+
"gh gist create*": "deny",
|
|
246
|
+
"gh gist delete*": "deny",
|
|
247
|
+
"gh gist edit*": "deny",
|
|
248
|
+
"gh ssh-key add*": "deny",
|
|
249
|
+
"gh gpg-key add*": "deny",
|
|
250
|
+
"gh cache delete*": "deny",
|
|
251
|
+
"rm *": "ask",
|
|
252
|
+
"rmdir *": "ask",
|
|
253
|
+
"sudo *": "ask"
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"description": "Madhav — the single super-agent. Orchestrates the full pipeline (*run-workflow, *phase) with parallel subagents, runs the unified build (*build-phase — calls /trblazeui + /techierag as sub-agents), fixes bugs from screenshots (*fix-issues), analyzes + logs human-found bugs without fixing (*triage-issues), records a single missed requirement in seconds (*log-miss), reports development telemetry (*metrics), and handles doc/status utilities (*render-workflow-docs, *generate-html, *handoff-phase, *refresh-status, *devguide) plus any one-off task."
|
|
257
|
+
},
|
|
258
|
+
"flow-architect": {
|
|
259
|
+
"prompt": "{file:./.tfcore/agents/architect.md}",
|
|
260
|
+
"mode": "all",
|
|
261
|
+
"permission": {
|
|
262
|
+
"edit": "allow",
|
|
263
|
+
"bash": {
|
|
264
|
+
"*": "allow",
|
|
265
|
+
"git commit*": "deny",
|
|
266
|
+
"git push*": "deny",
|
|
267
|
+
"git add*": "deny",
|
|
268
|
+
"git rm*": "deny",
|
|
269
|
+
"git mv*": "deny",
|
|
270
|
+
"git reset*": "deny",
|
|
271
|
+
"git checkout*": "deny",
|
|
272
|
+
"git switch*": "deny",
|
|
273
|
+
"git restore*": "deny",
|
|
274
|
+
"git merge*": "deny",
|
|
275
|
+
"git rebase*": "deny",
|
|
276
|
+
"git cherry-pick*": "deny",
|
|
277
|
+
"git revert*": "deny",
|
|
278
|
+
"git clean*": "deny",
|
|
279
|
+
"git am*": "deny",
|
|
280
|
+
"git apply*": "deny",
|
|
281
|
+
"git init*": "deny",
|
|
282
|
+
"git clone*": "deny",
|
|
283
|
+
"git pull*": "deny",
|
|
284
|
+
"git fetch*": "deny",
|
|
285
|
+
"git filter-branch*": "deny",
|
|
286
|
+
"git filter-repo*": "deny",
|
|
287
|
+
"git gc*": "deny",
|
|
288
|
+
"git prune*": "deny",
|
|
289
|
+
"git update-ref*": "deny",
|
|
290
|
+
"git symbolic-ref*": "deny",
|
|
291
|
+
"git replace*": "deny",
|
|
292
|
+
"git update-index*": "deny",
|
|
293
|
+
"git commit-tree*": "deny",
|
|
294
|
+
"git write-tree*": "deny",
|
|
295
|
+
"git read-tree*": "deny",
|
|
296
|
+
"git fast-import*": "deny",
|
|
297
|
+
"git send-email*": "deny",
|
|
298
|
+
"git request-pull*": "deny",
|
|
299
|
+
"git svn*": "deny",
|
|
300
|
+
"gh pr create*": "deny",
|
|
301
|
+
"gh pr merge*": "deny",
|
|
302
|
+
"gh pr close*": "deny",
|
|
303
|
+
"gh pr edit*": "deny",
|
|
304
|
+
"gh pr comment*": "deny",
|
|
305
|
+
"gh pr review*": "deny",
|
|
306
|
+
"gh pr ready*": "deny",
|
|
307
|
+
"gh pr reopen*": "deny",
|
|
308
|
+
"gh pr lock*": "deny",
|
|
309
|
+
"gh pr unlock*": "deny",
|
|
310
|
+
"gh pr update-branch*": "deny",
|
|
311
|
+
"gh pr checkout*": "deny",
|
|
312
|
+
"gh issue create*": "deny",
|
|
313
|
+
"gh issue close*": "deny",
|
|
314
|
+
"gh issue edit*": "deny",
|
|
315
|
+
"gh issue comment*": "deny",
|
|
316
|
+
"gh issue delete*": "deny",
|
|
317
|
+
"gh issue reopen*": "deny",
|
|
318
|
+
"gh issue pin*": "deny",
|
|
319
|
+
"gh issue unpin*": "deny",
|
|
320
|
+
"gh issue lock*": "deny",
|
|
321
|
+
"gh issue unlock*": "deny",
|
|
322
|
+
"gh issue transfer*": "deny",
|
|
323
|
+
"gh issue develop*": "deny",
|
|
324
|
+
"gh repo create*": "deny",
|
|
325
|
+
"gh repo delete*": "deny",
|
|
326
|
+
"gh repo fork*": "deny",
|
|
327
|
+
"gh repo clone*": "deny",
|
|
328
|
+
"gh repo edit*": "deny",
|
|
329
|
+
"gh repo sync*": "deny",
|
|
330
|
+
"gh repo archive*": "deny",
|
|
331
|
+
"gh repo unarchive*": "deny",
|
|
332
|
+
"gh repo rename*": "deny",
|
|
333
|
+
"gh repo set-default*": "deny",
|
|
334
|
+
"gh repo deploy-key add*": "deny",
|
|
335
|
+
"gh repo deploy-key delete*": "deny",
|
|
336
|
+
"gh release create*": "deny",
|
|
337
|
+
"gh release delete*": "deny",
|
|
338
|
+
"gh release upload*": "deny",
|
|
339
|
+
"gh release edit*": "deny",
|
|
340
|
+
"gh workflow run*": "deny",
|
|
341
|
+
"gh workflow enable*": "deny",
|
|
342
|
+
"gh workflow disable*": "deny",
|
|
343
|
+
"gh run cancel*": "deny",
|
|
344
|
+
"gh run rerun*": "deny",
|
|
345
|
+
"gh run delete*": "deny",
|
|
346
|
+
"gh secret set*": "deny",
|
|
347
|
+
"gh secret delete*": "deny",
|
|
348
|
+
"gh variable set*": "deny",
|
|
349
|
+
"gh variable delete*": "deny",
|
|
350
|
+
"gh label create*": "deny",
|
|
351
|
+
"gh label delete*": "deny",
|
|
352
|
+
"gh label edit*": "deny",
|
|
353
|
+
"gh auth login*": "deny",
|
|
354
|
+
"gh auth logout*": "deny",
|
|
355
|
+
"gh auth refresh*": "deny",
|
|
356
|
+
"gh auth setup-git*": "deny",
|
|
357
|
+
"gh gist create*": "deny",
|
|
358
|
+
"gh gist delete*": "deny",
|
|
359
|
+
"gh gist edit*": "deny",
|
|
360
|
+
"gh ssh-key add*": "deny",
|
|
361
|
+
"gh gpg-key add*": "deny",
|
|
362
|
+
"gh cache delete*": "deny",
|
|
363
|
+
"rm *": "ask",
|
|
364
|
+
"rmdir *": "ask",
|
|
365
|
+
"sudo *": "ask"
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
"description": "Optional deep architecture dive; /analyst covers day-1 architecture by default"
|
|
369
|
+
},
|
|
370
|
+
"flow-analyst": {
|
|
371
|
+
"prompt": "{file:./.tfcore/agents/analyst.md}",
|
|
372
|
+
"mode": "all",
|
|
373
|
+
"permission": {
|
|
374
|
+
"edit": "allow",
|
|
375
|
+
"bash": {
|
|
376
|
+
"*": "allow",
|
|
377
|
+
"git commit*": "deny",
|
|
378
|
+
"git push*": "deny",
|
|
379
|
+
"git add*": "deny",
|
|
380
|
+
"git rm*": "deny",
|
|
381
|
+
"git mv*": "deny",
|
|
382
|
+
"git reset*": "deny",
|
|
383
|
+
"git checkout*": "deny",
|
|
384
|
+
"git switch*": "deny",
|
|
385
|
+
"git restore*": "deny",
|
|
386
|
+
"git merge*": "deny",
|
|
387
|
+
"git rebase*": "deny",
|
|
388
|
+
"git cherry-pick*": "deny",
|
|
389
|
+
"git revert*": "deny",
|
|
390
|
+
"git clean*": "deny",
|
|
391
|
+
"git am*": "deny",
|
|
392
|
+
"git apply*": "deny",
|
|
393
|
+
"git init*": "deny",
|
|
394
|
+
"git clone*": "deny",
|
|
395
|
+
"git pull*": "deny",
|
|
396
|
+
"git fetch*": "deny",
|
|
397
|
+
"git filter-branch*": "deny",
|
|
398
|
+
"git filter-repo*": "deny",
|
|
399
|
+
"git gc*": "deny",
|
|
400
|
+
"git prune*": "deny",
|
|
401
|
+
"git update-ref*": "deny",
|
|
402
|
+
"git symbolic-ref*": "deny",
|
|
403
|
+
"git replace*": "deny",
|
|
404
|
+
"git update-index*": "deny",
|
|
405
|
+
"git commit-tree*": "deny",
|
|
406
|
+
"git write-tree*": "deny",
|
|
407
|
+
"git read-tree*": "deny",
|
|
408
|
+
"git fast-import*": "deny",
|
|
409
|
+
"git send-email*": "deny",
|
|
410
|
+
"git request-pull*": "deny",
|
|
411
|
+
"git svn*": "deny",
|
|
412
|
+
"gh pr create*": "deny",
|
|
413
|
+
"gh pr merge*": "deny",
|
|
414
|
+
"gh pr close*": "deny",
|
|
415
|
+
"gh pr edit*": "deny",
|
|
416
|
+
"gh pr comment*": "deny",
|
|
417
|
+
"gh pr review*": "deny",
|
|
418
|
+
"gh pr ready*": "deny",
|
|
419
|
+
"gh pr reopen*": "deny",
|
|
420
|
+
"gh pr lock*": "deny",
|
|
421
|
+
"gh pr unlock*": "deny",
|
|
422
|
+
"gh pr update-branch*": "deny",
|
|
423
|
+
"gh pr checkout*": "deny",
|
|
424
|
+
"gh issue create*": "deny",
|
|
425
|
+
"gh issue close*": "deny",
|
|
426
|
+
"gh issue edit*": "deny",
|
|
427
|
+
"gh issue comment*": "deny",
|
|
428
|
+
"gh issue delete*": "deny",
|
|
429
|
+
"gh issue reopen*": "deny",
|
|
430
|
+
"gh issue pin*": "deny",
|
|
431
|
+
"gh issue unpin*": "deny",
|
|
432
|
+
"gh issue lock*": "deny",
|
|
433
|
+
"gh issue unlock*": "deny",
|
|
434
|
+
"gh issue transfer*": "deny",
|
|
435
|
+
"gh issue develop*": "deny",
|
|
436
|
+
"gh repo create*": "deny",
|
|
437
|
+
"gh repo delete*": "deny",
|
|
438
|
+
"gh repo fork*": "deny",
|
|
439
|
+
"gh repo clone*": "deny",
|
|
440
|
+
"gh repo edit*": "deny",
|
|
441
|
+
"gh repo sync*": "deny",
|
|
442
|
+
"gh repo archive*": "deny",
|
|
443
|
+
"gh repo unarchive*": "deny",
|
|
444
|
+
"gh repo rename*": "deny",
|
|
445
|
+
"gh repo set-default*": "deny",
|
|
446
|
+
"gh repo deploy-key add*": "deny",
|
|
447
|
+
"gh repo deploy-key delete*": "deny",
|
|
448
|
+
"gh release create*": "deny",
|
|
449
|
+
"gh release delete*": "deny",
|
|
450
|
+
"gh release upload*": "deny",
|
|
451
|
+
"gh release edit*": "deny",
|
|
452
|
+
"gh workflow run*": "deny",
|
|
453
|
+
"gh workflow enable*": "deny",
|
|
454
|
+
"gh workflow disable*": "deny",
|
|
455
|
+
"gh run cancel*": "deny",
|
|
456
|
+
"gh run rerun*": "deny",
|
|
457
|
+
"gh run delete*": "deny",
|
|
458
|
+
"gh secret set*": "deny",
|
|
459
|
+
"gh secret delete*": "deny",
|
|
460
|
+
"gh variable set*": "deny",
|
|
461
|
+
"gh variable delete*": "deny",
|
|
462
|
+
"gh label create*": "deny",
|
|
463
|
+
"gh label delete*": "deny",
|
|
464
|
+
"gh label edit*": "deny",
|
|
465
|
+
"gh auth login*": "deny",
|
|
466
|
+
"gh auth logout*": "deny",
|
|
467
|
+
"gh auth refresh*": "deny",
|
|
468
|
+
"gh auth setup-git*": "deny",
|
|
469
|
+
"gh gist create*": "deny",
|
|
470
|
+
"gh gist delete*": "deny",
|
|
471
|
+
"gh gist edit*": "deny",
|
|
472
|
+
"gh ssh-key add*": "deny",
|
|
473
|
+
"gh gpg-key add*": "deny",
|
|
474
|
+
"gh cache delete*": "deny",
|
|
475
|
+
"rm *": "ask",
|
|
476
|
+
"rmdir *": "ask",
|
|
477
|
+
"sudo *": "ask"
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
"description": "Day-1 docs (*day1-brownfield / *day1-greenfield), UI mockups (*mockups), requirements split (*split-brd), doc amendments (*amend-docs), brainstorming, research"
|
|
481
|
+
},
|
|
482
|
+
"flow-verifier": {
|
|
483
|
+
"prompt": "{file:./.tfcore/agents/verifier.md}",
|
|
484
|
+
"mode": "all",
|
|
485
|
+
"permission": {
|
|
486
|
+
"edit": "allow",
|
|
487
|
+
"bash": {
|
|
488
|
+
"*": "allow",
|
|
489
|
+
"git commit*": "deny",
|
|
490
|
+
"git push*": "deny",
|
|
491
|
+
"git add*": "deny",
|
|
492
|
+
"git rm*": "deny",
|
|
493
|
+
"git mv*": "deny",
|
|
494
|
+
"git reset*": "deny",
|
|
495
|
+
"git checkout*": "deny",
|
|
496
|
+
"git switch*": "deny",
|
|
497
|
+
"git restore*": "deny",
|
|
498
|
+
"git merge*": "deny",
|
|
499
|
+
"git rebase*": "deny",
|
|
500
|
+
"git cherry-pick*": "deny",
|
|
501
|
+
"git revert*": "deny",
|
|
502
|
+
"git clean*": "deny",
|
|
503
|
+
"git am*": "deny",
|
|
504
|
+
"git apply*": "deny",
|
|
505
|
+
"git init*": "deny",
|
|
506
|
+
"git clone*": "deny",
|
|
507
|
+
"git pull*": "deny",
|
|
508
|
+
"git fetch*": "deny",
|
|
509
|
+
"git filter-branch*": "deny",
|
|
510
|
+
"git filter-repo*": "deny",
|
|
511
|
+
"git gc*": "deny",
|
|
512
|
+
"git prune*": "deny",
|
|
513
|
+
"git update-ref*": "deny",
|
|
514
|
+
"git symbolic-ref*": "deny",
|
|
515
|
+
"git replace*": "deny",
|
|
516
|
+
"git update-index*": "deny",
|
|
517
|
+
"git commit-tree*": "deny",
|
|
518
|
+
"git write-tree*": "deny",
|
|
519
|
+
"git read-tree*": "deny",
|
|
520
|
+
"git fast-import*": "deny",
|
|
521
|
+
"git send-email*": "deny",
|
|
522
|
+
"git request-pull*": "deny",
|
|
523
|
+
"git svn*": "deny",
|
|
524
|
+
"gh pr create*": "deny",
|
|
525
|
+
"gh pr merge*": "deny",
|
|
526
|
+
"gh pr close*": "deny",
|
|
527
|
+
"gh pr edit*": "deny",
|
|
528
|
+
"gh pr comment*": "deny",
|
|
529
|
+
"gh pr review*": "deny",
|
|
530
|
+
"gh pr ready*": "deny",
|
|
531
|
+
"gh pr reopen*": "deny",
|
|
532
|
+
"gh pr lock*": "deny",
|
|
533
|
+
"gh pr unlock*": "deny",
|
|
534
|
+
"gh pr update-branch*": "deny",
|
|
535
|
+
"gh pr checkout*": "deny",
|
|
536
|
+
"gh issue create*": "deny",
|
|
537
|
+
"gh issue close*": "deny",
|
|
538
|
+
"gh issue edit*": "deny",
|
|
539
|
+
"gh issue comment*": "deny",
|
|
540
|
+
"gh issue delete*": "deny",
|
|
541
|
+
"gh issue reopen*": "deny",
|
|
542
|
+
"gh issue pin*": "deny",
|
|
543
|
+
"gh issue unpin*": "deny",
|
|
544
|
+
"gh issue lock*": "deny",
|
|
545
|
+
"gh issue unlock*": "deny",
|
|
546
|
+
"gh issue transfer*": "deny",
|
|
547
|
+
"gh issue develop*": "deny",
|
|
548
|
+
"gh repo create*": "deny",
|
|
549
|
+
"gh repo delete*": "deny",
|
|
550
|
+
"gh repo fork*": "deny",
|
|
551
|
+
"gh repo clone*": "deny",
|
|
552
|
+
"gh repo edit*": "deny",
|
|
553
|
+
"gh repo sync*": "deny",
|
|
554
|
+
"gh repo archive*": "deny",
|
|
555
|
+
"gh repo unarchive*": "deny",
|
|
556
|
+
"gh repo rename*": "deny",
|
|
557
|
+
"gh repo set-default*": "deny",
|
|
558
|
+
"gh repo deploy-key add*": "deny",
|
|
559
|
+
"gh repo deploy-key delete*": "deny",
|
|
560
|
+
"gh release create*": "deny",
|
|
561
|
+
"gh release delete*": "deny",
|
|
562
|
+
"gh release upload*": "deny",
|
|
563
|
+
"gh release edit*": "deny",
|
|
564
|
+
"gh workflow run*": "deny",
|
|
565
|
+
"gh workflow enable*": "deny",
|
|
566
|
+
"gh workflow disable*": "deny",
|
|
567
|
+
"gh run cancel*": "deny",
|
|
568
|
+
"gh run rerun*": "deny",
|
|
569
|
+
"gh run delete*": "deny",
|
|
570
|
+
"gh secret set*": "deny",
|
|
571
|
+
"gh secret delete*": "deny",
|
|
572
|
+
"gh variable set*": "deny",
|
|
573
|
+
"gh variable delete*": "deny",
|
|
574
|
+
"gh label create*": "deny",
|
|
575
|
+
"gh label delete*": "deny",
|
|
576
|
+
"gh label edit*": "deny",
|
|
577
|
+
"gh auth login*": "deny",
|
|
578
|
+
"gh auth logout*": "deny",
|
|
579
|
+
"gh auth refresh*": "deny",
|
|
580
|
+
"gh auth setup-git*": "deny",
|
|
581
|
+
"gh gist create*": "deny",
|
|
582
|
+
"gh gist delete*": "deny",
|
|
583
|
+
"gh gist edit*": "deny",
|
|
584
|
+
"gh ssh-key add*": "deny",
|
|
585
|
+
"gh gpg-key add*": "deny",
|
|
586
|
+
"gh cache delete*": "deny",
|
|
587
|
+
"rm *": "ask",
|
|
588
|
+
"rmdir *": "ask",
|
|
589
|
+
"sudo *": "ask"
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"description": "Vidur — autonomous verification (*verify ui|functional|all); writes verdicts into the checklist Requirements Status tables"
|
|
593
|
+
},
|
|
594
|
+
"trblazeui": {
|
|
595
|
+
"prompt": "You are the TrBlazeUI sub-agent. Read `.opencode/command/trblazeui.md` (fall back, in order, to `.claude/commands/trblazeui.md`, `.claude/trblazeui.md`, `.trblazeui/TrBlazeUI-AI-Reference.md`) and fully adopt that persona and its operating guidelines — it is the authoritative persona. NuGet credentials are user-level (Windows native `%AppData%\\NuGet\\NuGet.Config`, macOS/Linux `$HOME/.nuget/NuGet/NuGet.Config`, Docker `/root/.nuget/NuGet/NuGet.Config` from `%USERPROFILE%\\.opencode-docker\\nuget\\NuGet.Config`); never put a PAT in the repository. In Docker, never assume a Windows config is decryptable and never install `maui-tizen`; verify the mounted config and use the Docker build ladder. If neither file exists (TrBlazeUI NuGet not yet deployed), report the exact source/auth failure instead of blindly running `dotnet build`. Otherwise act as an expert .NET/Blazor developer specializing in the TrBlazeUI component library: build UI screens to match the approved mockups (`docs/{AppName}-UIDesign.md` + `docs/mockups/*.html`), follow `docs/{AppName}-Coding-Standards.md`, tag work with `[REQ-UI-N]` in the checklist Remarks, log TrBlazeUI gaps to `docs/{AppName}-TrBlazeUI-Feedback.md`. Never run git or gh.",
|
|
596
|
+
"mode": "all",
|
|
597
|
+
"permission": {
|
|
598
|
+
"edit": "allow",
|
|
599
|
+
"bash": {
|
|
600
|
+
"*": "allow",
|
|
601
|
+
"git commit*": "deny",
|
|
602
|
+
"git push*": "deny",
|
|
603
|
+
"git add*": "deny",
|
|
604
|
+
"git rm*": "deny",
|
|
605
|
+
"git mv*": "deny",
|
|
606
|
+
"git reset*": "deny",
|
|
607
|
+
"git checkout*": "deny",
|
|
608
|
+
"git switch*": "deny",
|
|
609
|
+
"git restore*": "deny",
|
|
610
|
+
"git merge*": "deny",
|
|
611
|
+
"git rebase*": "deny",
|
|
612
|
+
"git cherry-pick*": "deny",
|
|
613
|
+
"git revert*": "deny",
|
|
614
|
+
"git clean*": "deny",
|
|
615
|
+
"git am*": "deny",
|
|
616
|
+
"git apply*": "deny",
|
|
617
|
+
"git init*": "deny",
|
|
618
|
+
"git clone*": "deny",
|
|
619
|
+
"git pull*": "deny",
|
|
620
|
+
"git fetch*": "deny",
|
|
621
|
+
"git filter-branch*": "deny",
|
|
622
|
+
"git filter-repo*": "deny",
|
|
623
|
+
"git gc*": "deny",
|
|
624
|
+
"git prune*": "deny",
|
|
625
|
+
"git update-ref*": "deny",
|
|
626
|
+
"git symbolic-ref*": "deny",
|
|
627
|
+
"git replace*": "deny",
|
|
628
|
+
"git update-index*": "deny",
|
|
629
|
+
"git commit-tree*": "deny",
|
|
630
|
+
"git write-tree*": "deny",
|
|
631
|
+
"git read-tree*": "deny",
|
|
632
|
+
"git fast-import*": "deny",
|
|
633
|
+
"git send-email*": "deny",
|
|
634
|
+
"git request-pull*": "deny",
|
|
635
|
+
"git svn*": "deny",
|
|
636
|
+
"gh pr create*": "deny",
|
|
637
|
+
"gh pr merge*": "deny",
|
|
638
|
+
"gh pr close*": "deny",
|
|
639
|
+
"gh pr edit*": "deny",
|
|
640
|
+
"gh pr comment*": "deny",
|
|
641
|
+
"gh pr review*": "deny",
|
|
642
|
+
"gh pr ready*": "deny",
|
|
643
|
+
"gh pr reopen*": "deny",
|
|
644
|
+
"gh pr lock*": "deny",
|
|
645
|
+
"gh pr unlock*": "deny",
|
|
646
|
+
"gh pr update-branch*": "deny",
|
|
647
|
+
"gh pr checkout*": "deny",
|
|
648
|
+
"gh issue create*": "deny",
|
|
649
|
+
"gh issue close*": "deny",
|
|
650
|
+
"gh issue edit*": "deny",
|
|
651
|
+
"gh issue comment*": "deny",
|
|
652
|
+
"gh issue delete*": "deny",
|
|
653
|
+
"gh issue reopen*": "deny",
|
|
654
|
+
"gh issue pin*": "deny",
|
|
655
|
+
"gh issue unpin*": "deny",
|
|
656
|
+
"gh issue lock*": "deny",
|
|
657
|
+
"gh issue unlock*": "deny",
|
|
658
|
+
"gh issue transfer*": "deny",
|
|
659
|
+
"gh issue develop*": "deny",
|
|
660
|
+
"gh repo create*": "deny",
|
|
661
|
+
"gh repo delete*": "deny",
|
|
662
|
+
"gh repo fork*": "deny",
|
|
663
|
+
"gh repo clone*": "deny",
|
|
664
|
+
"gh repo edit*": "deny",
|
|
665
|
+
"gh repo sync*": "deny",
|
|
666
|
+
"gh repo archive*": "deny",
|
|
667
|
+
"gh repo unarchive*": "deny",
|
|
668
|
+
"gh repo rename*": "deny",
|
|
669
|
+
"gh repo set-default*": "deny",
|
|
670
|
+
"gh repo deploy-key add*": "deny",
|
|
671
|
+
"gh repo deploy-key delete*": "deny",
|
|
672
|
+
"gh release create*": "deny",
|
|
673
|
+
"gh release delete*": "deny",
|
|
674
|
+
"gh release upload*": "deny",
|
|
675
|
+
"gh release edit*": "deny",
|
|
676
|
+
"gh workflow run*": "deny",
|
|
677
|
+
"gh workflow enable*": "deny",
|
|
678
|
+
"gh workflow disable*": "deny",
|
|
679
|
+
"gh run cancel*": "deny",
|
|
680
|
+
"gh run rerun*": "deny",
|
|
681
|
+
"gh run delete*": "deny",
|
|
682
|
+
"gh secret set*": "deny",
|
|
683
|
+
"gh secret delete*": "deny",
|
|
684
|
+
"gh variable set*": "deny",
|
|
685
|
+
"gh variable delete*": "deny",
|
|
686
|
+
"gh label create*": "deny",
|
|
687
|
+
"gh label delete*": "deny",
|
|
688
|
+
"gh label edit*": "deny",
|
|
689
|
+
"gh auth login*": "deny",
|
|
690
|
+
"gh auth logout*": "deny",
|
|
691
|
+
"gh auth refresh*": "deny",
|
|
692
|
+
"gh auth setup-git*": "deny",
|
|
693
|
+
"gh gist create*": "deny",
|
|
694
|
+
"gh gist delete*": "deny",
|
|
695
|
+
"gh gist edit*": "deny",
|
|
696
|
+
"gh ssh-key add*": "deny",
|
|
697
|
+
"gh gpg-key add*": "deny",
|
|
698
|
+
"gh cache delete*": "deny",
|
|
699
|
+
"rm *": "ask",
|
|
700
|
+
"rmdir *": "ask",
|
|
701
|
+
"sudo *": "ask"
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
"description": "Expert .NET and Blazor developer specializing in the TrBlazeUI component library (REQ-UI-* builder). Use when integrating TrBlazeUI into existing Blazor applications, generating UI pages/components/layouts/forms/dashboards, theming, or any .NET/Blazor development with TrBlazeUI."
|
|
705
|
+
},
|
|
706
|
+
"techierag": {
|
|
707
|
+
"prompt": "You are the TechieRag sub-agent. Read `.opencode/command/techierag.md` (fall back, in order, to `.claude/commands/techierag.md`, `.claude/techierag.md`, `.techierag/TechieRag-AI-Reference.md`) and fully adopt that persona and its operating guidelines — it is the authoritative persona. NuGet credentials are user-level (Windows native `%AppData%\\NuGet\\NuGet.Config`, macOS/Linux `$HOME/.nuget/NuGet/NuGet.Config`, Docker `/root/.nuget/NuGet/NuGet.Config` from `%USERPROFILE%\\.opencode-docker\\nuget\\NuGet.Config`); never put a PAT in the repository. In Docker, never assume a Windows config is decryptable and never install `maui-tizen`; verify the mounted config and use the Docker build ladder. If neither file exists (TechieRag NuGet not yet deployed), report the exact source/auth failure instead of blindly running `dotnet build`. Otherwise act as an expert .NET developer specializing in the TechieRag RAG + LLM management library: wire RAG via `TechieRagBuilder` / `ITechieRag` (`IngestAsync`/`SearchAsync`/`AskAsync`/`ChatWithRagAsync`), add unit tests under `tests/unit/Rag/`, tag work with `[REQ-RAG-N]` in the checklist Remarks, log gaps to `docs/{AppName}-TechieRag-Feedback.md`. Never run git or gh.",
|
|
708
|
+
"mode": "all",
|
|
709
|
+
"permission": {
|
|
710
|
+
"edit": "allow",
|
|
711
|
+
"bash": {
|
|
712
|
+
"*": "allow",
|
|
713
|
+
"git commit*": "deny",
|
|
714
|
+
"git push*": "deny",
|
|
715
|
+
"git add*": "deny",
|
|
716
|
+
"git rm*": "deny",
|
|
717
|
+
"git mv*": "deny",
|
|
718
|
+
"git reset*": "deny",
|
|
719
|
+
"git checkout*": "deny",
|
|
720
|
+
"git switch*": "deny",
|
|
721
|
+
"git restore*": "deny",
|
|
722
|
+
"git merge*": "deny",
|
|
723
|
+
"git rebase*": "deny",
|
|
724
|
+
"git cherry-pick*": "deny",
|
|
725
|
+
"git revert*": "deny",
|
|
726
|
+
"git clean*": "deny",
|
|
727
|
+
"git am*": "deny",
|
|
728
|
+
"git apply*": "deny",
|
|
729
|
+
"git init*": "deny",
|
|
730
|
+
"git clone*": "deny",
|
|
731
|
+
"git pull*": "deny",
|
|
732
|
+
"git fetch*": "deny",
|
|
733
|
+
"git filter-branch*": "deny",
|
|
734
|
+
"git filter-repo*": "deny",
|
|
735
|
+
"git gc*": "deny",
|
|
736
|
+
"git prune*": "deny",
|
|
737
|
+
"git update-ref*": "deny",
|
|
738
|
+
"git symbolic-ref*": "deny",
|
|
739
|
+
"git replace*": "deny",
|
|
740
|
+
"git update-index*": "deny",
|
|
741
|
+
"git commit-tree*": "deny",
|
|
742
|
+
"git write-tree*": "deny",
|
|
743
|
+
"git read-tree*": "deny",
|
|
744
|
+
"git fast-import*": "deny",
|
|
745
|
+
"git send-email*": "deny",
|
|
746
|
+
"git request-pull*": "deny",
|
|
747
|
+
"git svn*": "deny",
|
|
748
|
+
"gh pr create*": "deny",
|
|
749
|
+
"gh pr merge*": "deny",
|
|
750
|
+
"gh pr close*": "deny",
|
|
751
|
+
"gh pr edit*": "deny",
|
|
752
|
+
"gh pr comment*": "deny",
|
|
753
|
+
"gh pr review*": "deny",
|
|
754
|
+
"gh pr ready*": "deny",
|
|
755
|
+
"gh pr reopen*": "deny",
|
|
756
|
+
"gh pr lock*": "deny",
|
|
757
|
+
"gh pr unlock*": "deny",
|
|
758
|
+
"gh pr update-branch*": "deny",
|
|
759
|
+
"gh pr checkout*": "deny",
|
|
760
|
+
"gh issue create*": "deny",
|
|
761
|
+
"gh issue close*": "deny",
|
|
762
|
+
"gh issue edit*": "deny",
|
|
763
|
+
"gh issue comment*": "deny",
|
|
764
|
+
"gh issue delete*": "deny",
|
|
765
|
+
"gh issue reopen*": "deny",
|
|
766
|
+
"gh issue pin*": "deny",
|
|
767
|
+
"gh issue unpin*": "deny",
|
|
768
|
+
"gh issue lock*": "deny",
|
|
769
|
+
"gh issue unlock*": "deny",
|
|
770
|
+
"gh issue transfer*": "deny",
|
|
771
|
+
"gh issue develop*": "deny",
|
|
772
|
+
"gh repo create*": "deny",
|
|
773
|
+
"gh repo delete*": "deny",
|
|
774
|
+
"gh repo fork*": "deny",
|
|
775
|
+
"gh repo clone*": "deny",
|
|
776
|
+
"gh repo edit*": "deny",
|
|
777
|
+
"gh repo sync*": "deny",
|
|
778
|
+
"gh repo archive*": "deny",
|
|
779
|
+
"gh repo unarchive*": "deny",
|
|
780
|
+
"gh repo rename*": "deny",
|
|
781
|
+
"gh repo set-default*": "deny",
|
|
782
|
+
"gh repo deploy-key add*": "deny",
|
|
783
|
+
"gh repo deploy-key delete*": "deny",
|
|
784
|
+
"gh release create*": "deny",
|
|
785
|
+
"gh release delete*": "deny",
|
|
786
|
+
"gh release upload*": "deny",
|
|
787
|
+
"gh release edit*": "deny",
|
|
788
|
+
"gh workflow run*": "deny",
|
|
789
|
+
"gh workflow enable*": "deny",
|
|
790
|
+
"gh workflow disable*": "deny",
|
|
791
|
+
"gh run cancel*": "deny",
|
|
792
|
+
"gh run rerun*": "deny",
|
|
793
|
+
"gh run delete*": "deny",
|
|
794
|
+
"gh secret set*": "deny",
|
|
795
|
+
"gh secret delete*": "deny",
|
|
796
|
+
"gh variable set*": "deny",
|
|
797
|
+
"gh variable delete*": "deny",
|
|
798
|
+
"gh label create*": "deny",
|
|
799
|
+
"gh label delete*": "deny",
|
|
800
|
+
"gh label edit*": "deny",
|
|
801
|
+
"gh auth login*": "deny",
|
|
802
|
+
"gh auth logout*": "deny",
|
|
803
|
+
"gh auth refresh*": "deny",
|
|
804
|
+
"gh auth setup-git*": "deny",
|
|
805
|
+
"gh gist create*": "deny",
|
|
806
|
+
"gh gist delete*": "deny",
|
|
807
|
+
"gh gist edit*": "deny",
|
|
808
|
+
"gh ssh-key add*": "deny",
|
|
809
|
+
"gh gpg-key add*": "deny",
|
|
810
|
+
"gh cache delete*": "deny",
|
|
811
|
+
"rm *": "ask",
|
|
812
|
+
"rmdir *": "ask",
|
|
813
|
+
"sudo *": "ask"
|
|
814
|
+
}
|
|
815
|
+
},
|
|
816
|
+
"description": "Expert .NET developer specializing in the TechieRag RAG + LLM management library (REQ-RAG-* builder). Use when integrating TechieRag into .NET applications - adding NuGet packages, configuring RAG pipelines, setting up LLM providers, implementing chat, tool calling, token tracking, and any AI/LLM feature powered by TechieRag."
|
|
817
|
+
}
|
|
818
|
+
},
|
|
819
|
+
"command": {
|
|
820
|
+
"techieflow:tasks:day1-brownfield": {
|
|
821
|
+
"template": "{file:./.tfcore/tasks/day1-brownfield.md}",
|
|
822
|
+
"description": "Day-1 master task for an EXISTING project: Architecture + BRD + Coding-Standards + .editorconfig + PROJECT-STATUS + CLAUDE.md + the screen-by-screen DevGuide (with per-screen screenshots) (+ one-Checklist migration if a dev plan exists), all HTML-rendered."
|
|
823
|
+
},
|
|
824
|
+
"techieflow:tasks:day1-greenfield": {
|
|
825
|
+
"template": "{file:./.tfcore/tasks/day1-greenfield.md}",
|
|
826
|
+
"description": "Day-1 master task for a NEW project: target Architecture + BRD + UI mockups + Coding-Standards + .editorconfig + PROJECT-STATUS + CLAUDE.md + UsageGuide, all HTML-rendered."
|
|
827
|
+
},
|
|
828
|
+
"techieflow:tasks:mockups": {
|
|
829
|
+
"template": "{file:./.tfcore/tasks/mockups.md}",
|
|
830
|
+
"description": "Greenfield UI design: docs/{App}-UIDesign.md (per-screen region→TrBlazeUI-control map) + rendered docs/mockups/*.html styled to look like TrBlazeUI. The build's visual contract + the verifier's visual baseline. Driven by /analyst."
|
|
831
|
+
},
|
|
832
|
+
"techieflow:tasks:split-brd": {
|
|
833
|
+
"template": "{file:./.tfcore/tasks/split-brd.md}",
|
|
834
|
+
"description": "Split the BRD into the one docs/{App}-Checklist.md (REQ-UI/FN/RAG/NFR-* in a single Requirements Status table)."
|
|
835
|
+
},
|
|
836
|
+
"techieflow:tasks:build-phase": {
|
|
837
|
+
"template": "{file:./.tfcore/tasks/build-phase.md}",
|
|
838
|
+
"description": "The single unified build: implement every open REQ (UI/FN/RAG/NFR) from the one Checklist by clustering and calling /trblazeui (from mockups) + /techierag as sub-agents; self-smoke (data + visual); chain the verifier. Driven by /flow-master."
|
|
839
|
+
},
|
|
840
|
+
"techieflow:tasks:fix-issues": {
|
|
841
|
+
"template": "{file:./.tfcore/tasks/fix-issues.md}",
|
|
842
|
+
"description": "Bug-fix front door: given a folder of screenshots (+ optional description), reproduce with Playwright, triage (layout/data/logic/RAG), fan fixes to the right builder, re-smoke (data+visual) + re-verify, update docs. Driven by /flow-master."
|
|
843
|
+
},
|
|
844
|
+
"techieflow:tasks:log-miss": {
|
|
845
|
+
"template": "{file:./.tfcore/tasks/log-miss.md}",
|
|
846
|
+
"description": "The 20-second front door for 'you missed this': turns one sentence about something an agent got wrong into a misses.jsonl record (what was missed, which phase/agent/model let it through, who found it) plus the checklist line — demotion with a dated miss Remark, or a new Planned row when nothing owns it. Never boots the app, never reproduces, never edits code. Driven by /flow-master."
|
|
847
|
+
},
|
|
848
|
+
"techieflow:tasks:triage-issues": {
|
|
849
|
+
"template": "{file:./.tfcore/tasks/triage-issues.md}",
|
|
850
|
+
"description": "ANALYZE-ONLY bug front door for human-found (UAT/production) bugs: reproduce with Playwright, triage to the owning REQ, log in the checklist (demote to Needs re-verify / new Planned rows), optional scoped regression re-verify, update PROJECT-STATUS with the *fix-issues pointer. NEVER edits code. Driven by /flow-master."
|
|
851
|
+
},
|
|
852
|
+
"techieflow:tasks:verify-phase": {
|
|
853
|
+
"template": "{file:./.tfcore/tasks/verify-phase.md}",
|
|
854
|
+
"description": "Autonomous verification of a scope (ui | functional | all | REQ list | legacy phase-N) — filters the one Checklist by REQ prefix; applies the data-render + visual-truth gates; verdicts land in the Checklist Requirements Status table."
|
|
855
|
+
},
|
|
856
|
+
"techieflow:tasks:handoff-phase": {
|
|
857
|
+
"template": "{file:./.tfcore/tasks/handoff-phase.md}",
|
|
858
|
+
"description": "Final wrap-up: UsageGuide doc (test users + test plan + setup), PROJECT-STATUS → Handoff, HTML re-renders, Library-Feedback consolidation."
|
|
859
|
+
},
|
|
860
|
+
"techieflow:tasks:refresh-status": {
|
|
861
|
+
"template": "{file:./.tfcore/tasks/refresh-status.md}",
|
|
862
|
+
"description": "RECOVERY: rebuild PROJECT-STATUS.md from ground truth (checklist tables + working-tree files + fresh build — NEVER git; git is manual) after a session died mid-phase and the status gate never ran. Distrusts stale status; never edits source."
|
|
863
|
+
},
|
|
864
|
+
"techieflow:tasks:metrics-report": {
|
|
865
|
+
"template": "{file:./.tfcore/tasks/metrics-report.md}",
|
|
866
|
+
"description": "Development telemetry report (*metrics): reads the append-only docs/metrics/ streams (runs / gates / sessions / commits / misses) and writes docs/metrics/METRICS.md + .html — first-pass rate, gate catch distribution, escape rate, rework ratio, throughput, commit cadence, plus the miss report (what was missed, which phase/agent/model let it through, what the fixes cost). NEVER prints a figure that pools live with backfilled records, or app with library/docs. Never runs git."
|
|
867
|
+
},
|
|
868
|
+
"techieflow:tasks:render-workflow-docs": {
|
|
869
|
+
"template": "{file:./.tfcore/tasks/render-workflow-docs.md}",
|
|
870
|
+
"description": "Re-render the canonical trio: BRD.html + Architecture.html + PROJECT-STATUS.html (with NEXT COMMAND call-to-action)."
|
|
871
|
+
},
|
|
872
|
+
"techieflow:tasks:generate-html": {
|
|
873
|
+
"template": "{file:./.tfcore/tasks/generate-html.md}",
|
|
874
|
+
"description": "Render any markdown file(s) or a non-recursive directory to self-contained HTML using the shared shell."
|
|
875
|
+
},
|
|
876
|
+
"techieflow:tasks:author-brd": {
|
|
877
|
+
"template": "{file:./.tfcore/tasks/author-brd.md}",
|
|
878
|
+
"description": "Interactively extend docs/{AppName}-BRD.md with confirmed BRD-N requirements (per-item elicitation)."
|
|
879
|
+
},
|
|
880
|
+
"techieflow:tasks:amend-docs": {
|
|
881
|
+
"template": "{file:./.tfcore/tasks/amend-docs.md}",
|
|
882
|
+
"description": "Fold an evolving concept / changed requirements into the EXISTING day-1 docs IN PLACE: surgically amends BRD + Architecture (append-only IDs), ripples to PROJECT-STATUS / BRD §4 / checklists, re-renders HTML. Incremental alternative to re-running day1-*."
|
|
883
|
+
},
|
|
884
|
+
"techieflow:tasks:productguide": {
|
|
885
|
+
"template": "{file:./.tfcore/tasks/productguide.md}",
|
|
886
|
+
"description": "End-user Product Guide: screenshot-illustrated, task-oriented how-to manual for external users (what each screen is for + how to do things) — the user-facing sibling of the DevGuide, reusing its captured screenshots. Always MD + HTML. On-demand. Driven by /flow-master."
|
|
887
|
+
},
|
|
888
|
+
"techieflow:tasks:devguide": {
|
|
889
|
+
"template": "{file:./.tfcore/tasks/devguide.md}",
|
|
890
|
+
"description": "Generate/refresh the screen-by-screen Developer Guide: traces every screen/control from Razor page → service → data-access → stored proc/query, per user role, documenting the code AS BUILT. Single doc for small apps, split per role for large ones; --update refreshes only changed screens."
|
|
891
|
+
},
|
|
892
|
+
"techieflow:tasks:document-project": {
|
|
893
|
+
"template": "{file:./.tfcore/tasks/document-project.md}",
|
|
894
|
+
"description": "Generate comprehensive documentation for existing projects optimized for AI development agents."
|
|
895
|
+
},
|
|
896
|
+
"techieflow:tasks:create-doc": {
|
|
897
|
+
"template": "{file:./.tfcore/tasks/create-doc.md}",
|
|
898
|
+
"description": "Create a document from a YAML-driven TechieFlow template (interactive, section by section)."
|
|
899
|
+
},
|
|
900
|
+
"techieflow:tasks:create-deep-research-prompt": {
|
|
901
|
+
"template": "{file:./.tfcore/tasks/create-deep-research-prompt.md}",
|
|
902
|
+
"description": "Generate well-structured research prompts."
|
|
903
|
+
},
|
|
904
|
+
"techieflow:tasks:facilitate-brainstorming-session": {
|
|
905
|
+
"template": "{file:./.tfcore/tasks/facilitate-brainstorming-session.md}",
|
|
906
|
+
"description": "Run a structured brainstorming session; results land in docs/brainstorming-session-results.md."
|
|
907
|
+
},
|
|
908
|
+
"techieflow:tasks:advanced-elicitation": {
|
|
909
|
+
"template": "{file:./.tfcore/tasks/advanced-elicitation.md}",
|
|
910
|
+
"description": "Reflective/brainstorming actions for deeper exploration and iterative refinement of drafted content."
|
|
911
|
+
},
|
|
912
|
+
"techieflow:tasks:execute-checklist": {
|
|
913
|
+
"template": "{file:./.tfcore/tasks/execute-checklist.md}",
|
|
914
|
+
"description": "Validate a document or work product against one of the TechieFlow checklists."
|
|
915
|
+
},
|
|
916
|
+
"techieflow:tasks:index-docs": {
|
|
917
|
+
"template": "{file:./.tfcore/tasks/index-docs.md}",
|
|
918
|
+
"description": "Maintain docs/index.md by scanning all documentation files and indexing them with descriptions."
|
|
919
|
+
},
|
|
920
|
+
"techieflow:tasks:kb-mode-interaction": {
|
|
921
|
+
"template": "{file:./.tfcore/tasks/kb-mode-interaction.md}",
|
|
922
|
+
"description": "User-friendly interface to the TechieFlow knowledge base."
|
|
923
|
+
},
|
|
924
|
+
"techieflow:tasks:shard-doc": {
|
|
925
|
+
"template": "{file:./.tfcore/tasks/shard-doc.md}",
|
|
926
|
+
"description": "Split a large document into smaller documents by level-2 sections, preserving content integrity."
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
}
|