-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopencode.jsonc
More file actions
192 lines (192 loc) · 13.6 KB
/
Copy pathopencode.jsonc
File metadata and controls
192 lines (192 loc) · 13.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
{
"$schema": "https://opencode.ai/config.json",
"instructions": [
".tfcore/core-config.yaml",
".tfcore/templates/v4custom/build-invocation-ladder.md",
".tfcore/templates/v4custom/opencode-operating-contract.md",
"AGENTS.md"
],
// Solo-dev TechieFlow v4: only the agents the compressed workflow actually uses.
// Stock story-flow agents (dev/pm/po/qa/sm/ux-expert) were trimmed 2026-06-12
// and are no longer included.
//
// NOTE on `tools` vs `permission`: the legacy `tools` key (e.g.
// {write/edit/bash: true}) is deprecated and auto-normalized to a `permission`
// block, and listing only three tools left read/grep/glob/task at their
// defaults anyway. We use `permission` explicitly so intent is unambiguous.
//
// NOTE on git/gh: "GIT IS MANUAL" is enforced here for OpenCode the same way
// `.claude/settings.json` + block-git.sh enforce it for Claude Code. The root
// `permission` block below denies git/gh in bash (OpenCode has no settings-level
// hooks; this is the mechanical gate). Compound forms like `cd x && git log`
// are NOT matched by prefix rules — the agent personas repeat the rule in prose
// and the owner reviews all bash output, same as the Claude-side contract.
"permission": {
"bash": {
"*": "allow",
"git": "deny",
"git *": "deny",
"gh": "deny",
"gh *": "deny"
}
},
"agent": {
"flow-master": {
"prompt": "{file:./.tfcore/agents/flow-master.md}",
"mode": "primary",
"permission": {
"edit": "allow",
"bash": "allow"
},
"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), reports development telemetry (*metrics), and handles doc/status utilities (*render-workflow-docs, *generate-html, *handoff-phase, *refresh-status, *devguide) plus any one-off task."
},
"flow-architect": {
"prompt": "{file:./.tfcore/agents/architect.md}",
"mode": "all",
"permission": {
"edit": "allow",
"bash": "allow"
},
"description": "Optional deep architecture dive; /analyst covers day-1 architecture by default"
},
"flow-analyst": {
"prompt": "{file:./.tfcore/agents/analyst.md}",
"mode": "all",
"permission": {
"edit": "allow",
"bash": "allow"
},
"description": "Day-1 docs (*day1-brownfield / *day1-greenfield), UI mockups (*mockups), requirements split (*split-brd), doc amendments (*amend-docs), brainstorming, research"
},
"flow-verifier": {
"prompt": "{file:./.tfcore/agents/verifier.md}",
"mode": "all",
"permission": {
"edit": "allow",
"bash": "allow"
},
"description": "Vidur — autonomous verification (*verify ui|functional|all); writes verdicts into the checklist Requirements Status tables"
},
"trblazeui": {
"prompt": "You are the TrBlazeUI sub-agent. Read `.opencode/command/trblazeui.md` (fall back to `.claude/trblazeui.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.",
"mode": "all",
"permission": {
"edit": "allow",
"bash": "allow"
},
"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."
},
"techierag": {
"prompt": "You are the TechieRag sub-agent. Read `.opencode/command/techierag.md` (fall back to `.claude/techierag.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.",
"mode": "all",
"permission": {
"edit": "allow",
"bash": "allow"
},
"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."
}
},
"command": {
"techieflow:tasks:day1-brownfield": {
"template": "{file:./.tfcore/tasks/day1-brownfield.md}",
"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."
},
"techieflow:tasks:day1-greenfield": {
"template": "{file:./.tfcore/tasks/day1-greenfield.md}",
"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."
},
"techieflow:tasks:mockups": {
"template": "{file:./.tfcore/tasks/mockups.md}",
"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."
},
"techieflow:tasks:split-brd": {
"template": "{file:./.tfcore/tasks/split-brd.md}",
"description": "Split the BRD into the one docs/{App}-Checklist.md (REQ-UI/FN/RAG/NFR-* in a single Requirements Status table)."
},
"techieflow:tasks:build-phase": {
"template": "{file:./.tfcore/tasks/build-phase.md}",
"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."
},
"techieflow:tasks:fix-issues": {
"template": "{file:./.tfcore/tasks/fix-issues.md}",
"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."
},
"techieflow:tasks:triage-issues": {
"template": "{file:./.tfcore/tasks/triage-issues.md}",
"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."
},
"techieflow:tasks:verify-phase": {
"template": "{file:./.tfcore/tasks/verify-phase.md}",
"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."
},
"techieflow:tasks:handoff-phase": {
"template": "{file:./.tfcore/tasks/handoff-phase.md}",
"description": "Final wrap-up: UsageGuide doc (test users + test plan + setup), PROJECT-STATUS → Handoff, HTML re-renders, Library-Feedback consolidation."
},
"techieflow:tasks:refresh-status": {
"template": "{file:./.tfcore/tasks/refresh-status.md}",
"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."
},
"techieflow:tasks:metrics-report": {
"template": "{file:./.tfcore/tasks/metrics-report.md}",
"description": "Development telemetry report (*metrics): reads the append-only docs/metrics/ streams (runs / gates / sessions / commits) and writes docs/metrics/METRICS.md + .html — first-pass rate, gate catch distribution, escape rate, rework ratio, throughput, commit cadence. NEVER prints a figure that pools live with backfilled records, or app with library/docs. Never runs git."
},
"techieflow:tasks:render-workflow-docs": {
"template": "{file:./.tfcore/tasks/render-workflow-docs.md}",
"description": "Re-render the canonical trio: BRD.html + Architecture.html + PROJECT-STATUS.html (with NEXT COMMAND call-to-action)."
},
"techieflow:tasks:generate-html": {
"template": "{file:./.tfcore/tasks/generate-html.md}",
"description": "Render any markdown file(s) or a non-recursive directory to self-contained HTML using the shared shell."
},
"techieflow:tasks:author-brd": {
"template": "{file:./.tfcore/tasks/author-brd.md}",
"description": "Interactively extend docs/{AppName}-BRD.md with confirmed BRD-N requirements (per-item elicitation)."
},
"techieflow:tasks:amend-docs": {
"template": "{file:./.tfcore/tasks/amend-docs.md}",
"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-*."
},
"techieflow:tasks:productguide": {
"template": "{file:./.tfcore/tasks/productguide.md}",
"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."
},
"techieflow:tasks:devguide": {
"template": "{file:./.tfcore/tasks/devguide.md}",
"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."
},
"techieflow:tasks:document-project": {
"template": "{file:./.tfcore/tasks/document-project.md}",
"description": "Generate comprehensive documentation for existing projects optimized for AI development agents."
},
"techieflow:tasks:create-doc": {
"template": "{file:./.tfcore/tasks/create-doc.md}"
},
"techieflow:tasks:create-deep-research-prompt": {
"template": "{file:./.tfcore/tasks/create-deep-research-prompt.md}",
"description": "Generate well-structured research prompts."
},
"techieflow:tasks:facilitate-brainstorming-session": {
"template": "{file:./.tfcore/tasks/facilitate-brainstorming-session.md}"
},
"techieflow:tasks:advanced-elicitation": {
"template": "{file:./.tfcore/tasks/advanced-elicitation.md}",
"description": "Reflective/brainstorming actions for deeper exploration and iterative refinement of drafted content."
},
"techieflow:tasks:execute-checklist": {
"template": "{file:./.tfcore/tasks/execute-checklist.md}"
},
"techieflow:tasks:index-docs": {
"template": "{file:./.tfcore/tasks/index-docs.md}",
"description": "Maintain docs/index.md by scanning all documentation files and indexing them with descriptions."
},
"techieflow:tasks:kb-mode-interaction": {
"template": "{file:./.tfcore/tasks/kb-mode-interaction.md}",
"description": "User-friendly interface to the TechieFlow knowledge base."
},
"techieflow:tasks:shard-doc": {
"template": "{file:./.tfcore/tasks/shard-doc.md}",
"description": "Split a large document into smaller documents by level-2 sections, preserving content integrity."
}
}
}