@plainconceptsplatform/agent-harness 3.8.3 → 3.9.0-alpha.1
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/LICENSE +21 -21
- package/README.md +551 -551
- package/cli/commands/join.js +259 -259
- package/cli/commands/migrate.js +310 -310
- package/cli/commands/shared.js +27 -27
- package/cli/commands/single.js +79 -79
- package/cli/commands/update.js +121 -121
- package/cli/commands/wizard.js +134 -134
- package/cli/fragments/archive/az.md +97 -97
- package/cli/fragments/archive/gh.md +96 -96
- package/cli/fragments/archive/gl.md +96 -96
- package/cli/fragments/archive/none.md +75 -75
- package/cli/fragments/guardrails/codegraph.md +5 -5
- package/cli/fragments/guardrails/humanizer.md +4 -4
- package/cli/fragments/guardrails/memory.md +4 -4
- package/cli/fragments/guardrails/rtk.md +3 -3
- package/cli/fragments/guardrails/simple-english.md +4 -4
- package/cli/fragments/ops-backlog/az.md +28 -28
- package/cli/fragments/ops-backlog/gh.md +28 -28
- package/cli/fragments/ops-backlog/jira.md +28 -28
- package/cli/fragments/ops-review/az.md +62 -62
- package/cli/fragments/ops-review/gh.md +51 -51
- package/cli/fragments/ops-review/gl.md +55 -55
- package/cli/fragments/ops-ship/az.md +81 -81
- package/cli/fragments/ops-ship/gh.md +67 -67
- package/cli/fragments/ops-ship/gl.md +84 -84
- package/cli/index.js +116 -116
- package/cli/presets/agents-content.json +34 -34
- package/cli/presets/browser.json +10 -10
- package/cli/presets/clean.json +21 -21
- package/cli/presets/models.json +68 -68
- package/cli/presets/optimization.json +32 -32
- package/cli/presets/platforms.json +76 -76
- package/cli/presets/source.json +23 -23
- package/cli/steps/browser/index.js +52 -48
- package/cli/steps/clean/index.js +120 -120
- package/cli/steps/copy/agents.js +176 -176
- package/cli/steps/copy/commands.js +79 -79
- package/cli/steps/copy/fullstack-engineer.js +81 -89
- package/cli/steps/copy/index.js +88 -88
- package/cli/steps/copy/opencode-json.js +324 -324
- package/cli/steps/copy/skills.js +316 -316
- package/cli/steps/metadata/index.js +115 -115
- package/cli/steps/models/format.js +88 -88
- package/cli/steps/models/index.js +64 -64
- package/cli/steps/models/write.js +38 -38
- package/cli/steps/openspec/index.js +136 -136
- package/cli/steps/optimization/codegraph.js +141 -141
- package/cli/steps/optimization/detect.js +66 -66
- package/cli/steps/optimization/humanizer.js +17 -17
- package/cli/steps/optimization/index.js +158 -158
- package/cli/steps/optimization/memory.js +91 -91
- package/cli/steps/optimization/patch-guardrails.js +111 -111
- package/cli/steps/optimization/simple-english.js +17 -17
- package/cli/steps/optimization/skills-lock.js +30 -30
- package/cli/steps/platform/index.js +109 -109
- package/cli/steps/source/index.js +123 -123
- package/cli/utils/agent-color.js +111 -111
- package/cli/utils/copy.js +134 -134
- package/cli/utils/exec-spinner.js +47 -47
- package/cli/utils/exec.js +134 -134
- package/cli/utils/legacy-check.js +30 -30
- package/cli/utils/models-cache.js +58 -58
- package/cli/utils/models-pricing.js +42 -42
- package/cli/utils/paths.js +82 -82
- package/cli/utils/process.js +3 -3
- package/cli/utils/terminal.js +6 -6
- package/cli/utils/update-manifest.js +75 -75
- package/harness/.opencode/_gitignore +12 -10
- package/harness/.opencode/commands/init.md +5 -5
- package/harness/.opencode/commands/make-architecture.md +5 -5
- package/harness/.opencode/commands/make-design.md +5 -5
- package/harness/.opencode/commands/make-engineer.md +5 -5
- package/harness/.opencode/commands/make-guardrails.md +5 -5
- package/harness/.opencode/commands/make-user-model.md +5 -5
- package/harness/.opencode/commands/ops-backlog.md +10 -10
- package/harness/.opencode/commands/ops-review.md +10 -10
- package/harness/.opencode/commands/ops-ship.md +9 -9
- package/harness/.opencode/commands/plan-apply.md +9 -9
- package/harness/.opencode/commands/plan-archive.md +7 -7
- package/harness/.opencode/commands/plan-explore.md +11 -11
- package/harness/.opencode/commands/plan-goal.md +5 -5
- package/harness/.opencode/commands/plan-propose.md +11 -11
- package/harness/.opencode/commands/plan-quick.md +7 -7
- package/harness/.opencode/commands/plan-story.md +11 -11
- package/harness/.opencode/commands/repo-audit.md +7 -7
- package/harness/.opencode/commands/repo-help.md +5 -5
- package/harness/.opencode/commands/repo-initialize.md +5 -5
- package/harness/.opencode/commands/repo-onboard.md +5 -5
- package/harness/.opencode/commands/repo-verify.md +5 -5
- package/harness/.opencode/package.json +6 -5
- package/harness/.opencode/plugins/pc-commit-coauthor.js +41 -41
- package/harness/.opencode/plugins/pc-subagent-monitor.js +184 -184
- package/harness/.opencode/plugins/pc-subagent-tiers-core.js +337 -0
- package/harness/.opencode/plugins/pc-subagent-tiers.js +56 -367
- package/harness/.opencode/plugins/pc-system-reminders.js +424 -424
- package/harness/.opencode/scripts/check-diff.mjs +305 -305
- package/harness/.opencode/scripts/code-rules.mjs +288 -288
- package/harness/.opencode/scripts/harness-doctor.mjs +52 -0
- package/harness/.opencode/scripts/harness-doctor.test.mjs +58 -0
- package/harness/.opencode/scripts/platform-contract.mjs +366 -366
- package/harness/.opencode/scripts/sync-agents.mjs +29 -0
- package/harness/AGENTS.md +55 -55
- package/harness/ARCHITECTURE.md +13 -13
- package/harness/DESIGN.md +13 -13
- package/harness/opencode.jsonc +36 -36
- package/harness/openspec/config.yaml +20 -20
- package/harness/skills-lock.json +17 -17
- package/package.json +14 -12
- package/skills/README.md +18 -18
- package/skills/agent-harness-cli/SKILL.md +86 -86
- package/skills/browser-automation/SKILL.md +100 -72
- package/skills/pc-guardrails-generic/SKILL.md +53 -53
- package/skills/pc-guardrails-project/SKILL.md +8 -8
- package/skills/pc-make-architecture/SKILL.md +33 -33
- package/skills/pc-make-architecture/structure-template.md +64 -64
- package/skills/pc-make-design/SKILL.md +45 -45
- package/skills/pc-make-engineer/SKILL.md +59 -59
- package/skills/pc-make-engineer/signal-mapping.md +53 -53
- package/skills/pc-make-engineer/template.md +36 -36
- package/skills/pc-make-guardrails/SKILL.md +44 -44
- package/skills/pc-make-guardrails/category-reference.md +112 -112
- package/skills/pc-make-merge-risk-assess/SKILL.md +70 -70
- package/skills/pc-make-merge-risk-assess/category-reference.md +114 -114
- package/skills/pc-make-user-model/SKILL.md +56 -56
- package/skills/pc-ops-ship/SKILL.md +22 -22
- package/skills/pc-plan-apply/SKILL.md +90 -90
- package/skills/pc-plan-apply/simple-mode.md +21 -21
- package/skills/pc-plan-archive/SKILL.md +66 -66
- package/skills/pc-plan-explore/SKILL.md +21 -21
- package/skills/pc-plan-goal/SKILL.md +91 -91
- package/skills/pc-plan-goal/branching.md +39 -39
- package/skills/pc-plan-goal/failure-policy.md +30 -30
- package/skills/pc-plan-goal/output-mode.md +10 -10
- package/skills/pc-plan-goal/output.md +71 -71
- package/skills/pc-plan-propose/SKILL.md +127 -127
- package/skills/pc-plan-propose/task-annotation.md +39 -39
- package/skills/pc-plan-quick/SKILL.md +46 -46
- package/skills/pc-plan-story/SKILL.md +93 -93
- package/skills/pc-repo-audit/SKILL.md +44 -44
- package/skills/pc-repo-help/SKILL.md +87 -87
- package/skills/pc-repo-initialize/SKILL.md +119 -119
- package/skills/pc-repo-onboard/SKILL.md +32 -32
- package/skills/pc-repo-verify/SKILL.md +150 -150
- package/skills/pc-userstory-az/SKILL.md +71 -71
- package/skills/pc-userstory-browser/SKILL.md +73 -64
- package/skills/pc-userstory-gh/SKILL.md +63 -63
- package/skills/pc-userstory-jira/SKILL.md +74 -74
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pc-plan-quick
|
|
3
|
-
description: "Quick plan: analyze the codebase and create a task checklist using the Todo pane. No files, no OpenSpec. Invoked by the /plan-quick command."
|
|
4
|
-
license: MIT
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Lightweight planning for a change that is already clear: read the codebase, write the task list to the Todo pane, stop. Use `/plan-explore` then `/plan-propose` instead when the idea is half-formed, the alternatives need thinking through, or the result should outlive the session.
|
|
8
|
-
|
|
9
|
-
## Rules
|
|
10
|
-
|
|
11
|
-
- Never write, edit, or create a file. The only artefacts are Todo items and one question, so there is nothing to review afterwards and nothing to undo.
|
|
12
|
-
- Never start the work, and never invoke `/plan-apply` or `/plan-propose` on the user's behalf. The question at the end is where they choose.
|
|
13
|
-
|
|
14
|
-
## Contracts
|
|
15
|
-
|
|
16
|
-
One Todo item per task, in dependency order, each one action naming the files it touches:
|
|
17
|
-
|
|
18
|
-
```json
|
|
19
|
-
{
|
|
20
|
-
"todos": [
|
|
21
|
-
{ "content": "Add Project model to src/types.ts", "status": "pending", "priority": "high" },
|
|
22
|
-
{ "content": "Add projectId field to LoopOptions in src/types.ts", "status": "pending", "priority": "high" },
|
|
23
|
-
{ "content": "Create Project RPC endpoints in src/rpc/project/", "status": "pending", "priority": "medium" },
|
|
24
|
-
{ "content": "Build Accept page UI in src/board/components/CreateForm.tsx", "status": "pending", "priority": "medium" },
|
|
25
|
-
{ "content": "Run pnpm verify and check-diff, re-verify after fixes", "status": "pending", "priority": "low" }
|
|
26
|
-
]
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Then ask:
|
|
31
|
-
|
|
32
|
-
```json
|
|
33
|
-
{
|
|
34
|
-
"questions": [
|
|
35
|
-
{
|
|
36
|
-
"header": "What next",
|
|
37
|
-
"question": "What next?",
|
|
38
|
-
"options": [
|
|
39
|
-
{ "label": "/plan-apply", "description": "Implement these tasks now (creates a feature branch and works through them)." },
|
|
40
|
-
{ "label": "/plan-propose", "description": "Turn this into a full OpenSpec proposal with agent assignments." },
|
|
41
|
-
{ "label": "Start on specific tasks", "description": "Tell me which tasks to start on." }
|
|
42
|
-
]
|
|
43
|
-
}
|
|
44
|
-
]
|
|
45
|
-
}
|
|
46
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: pc-plan-quick
|
|
3
|
+
description: "Quick plan: analyze the codebase and create a task checklist using the Todo pane. No files, no OpenSpec. Invoked by the /plan-quick command."
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Lightweight planning for a change that is already clear: read the codebase, write the task list to the Todo pane, stop. Use `/plan-explore` then `/plan-propose` instead when the idea is half-formed, the alternatives need thinking through, or the result should outlive the session.
|
|
8
|
+
|
|
9
|
+
## Rules
|
|
10
|
+
|
|
11
|
+
- Never write, edit, or create a file. The only artefacts are Todo items and one question, so there is nothing to review afterwards and nothing to undo.
|
|
12
|
+
- Never start the work, and never invoke `/plan-apply` or `/plan-propose` on the user's behalf. The question at the end is where they choose.
|
|
13
|
+
|
|
14
|
+
## Contracts
|
|
15
|
+
|
|
16
|
+
One Todo item per task, in dependency order, each one action naming the files it touches:
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{
|
|
20
|
+
"todos": [
|
|
21
|
+
{ "content": "Add Project model to src/types.ts", "status": "pending", "priority": "high" },
|
|
22
|
+
{ "content": "Add projectId field to LoopOptions in src/types.ts", "status": "pending", "priority": "high" },
|
|
23
|
+
{ "content": "Create Project RPC endpoints in src/rpc/project/", "status": "pending", "priority": "medium" },
|
|
24
|
+
{ "content": "Build Accept page UI in src/board/components/CreateForm.tsx", "status": "pending", "priority": "medium" },
|
|
25
|
+
{ "content": "Run pnpm verify and check-diff, re-verify after fixes", "status": "pending", "priority": "low" }
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Then ask:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"questions": [
|
|
35
|
+
{
|
|
36
|
+
"header": "What next",
|
|
37
|
+
"question": "What next?",
|
|
38
|
+
"options": [
|
|
39
|
+
{ "label": "/plan-apply", "description": "Implement these tasks now (creates a feature branch and works through them)." },
|
|
40
|
+
{ "label": "/plan-propose", "description": "Turn this into a full OpenSpec proposal with agent assignments." },
|
|
41
|
+
{ "label": "Start on specific tasks", "description": "Tell me which tasks to start on." }
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
```
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pc-plan-story
|
|
3
|
-
description: Write a detailed, repo-aware user story from a feature idea or need, then wrap it in the repository's issue form and append a structured implementation plan. Loads the @user-story skill for Mike Cohn format + Gherkin acceptance criteria, analyzes the codebase for concrete context, and produces a development-ready story with a plan. Use when the user wants to write a user story, create a story from a feature idea, or turn a need into a structured story with acceptance criteria. Invoked by the /plan-story command.
|
|
4
|
-
license: MIT
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Write a user story grounded in this repository. `@user-story` owns the format and the quality bar; `@humanizer` owns the prose. What this skill adds is the grounding: the personas, paths, models and components come out of the codebase, not out of a template.
|
|
8
|
-
|
|
9
|
-
## Input
|
|
10
|
-
|
|
11
|
-
A feature description, need, or rough idea, possibly with exploration findings and diagrams to align the scope with. If `$ARGUMENTS` is empty, ask what the user wants to capture.
|
|
12
|
-
|
|
13
|
-
The caller may pass exploration findings from a prior `/plan-explore` session. Treat them as the primary source for the codebase inventory; read files only to fill gaps the findings do not cover.
|
|
14
|
-
|
|
15
|
-
<!-- PC-OPTIMIZATION-MEMORY-START -->
|
|
16
|
-
<!-- PC-OPTIMIZATION-MEMORY-END -->
|
|
17
|
-
|
|
18
|
-
## Rules
|
|
19
|
-
|
|
20
|
-
- Never write, edit, or create a file, and never start the work or invoke `/plan-propose` or `/plan-quick`. The only artefacts are the story (with its issue form and plan), and one question.
|
|
21
|
-
- Never write `As a user`. The persona comes from the repo's own roles: auth middleware, route guards, user models. A story that could have been written without opening the repo is not worth reviewing.
|
|
22
|
-
- Never show the user a story that fails the `@user-story` checks. Fix it first.
|
|
23
|
-
- Every `Given`, `When` and `Then` names something real, and every `Then` is testable: a file, endpoint, model or field somebody can point at.
|
|
24
|
-
- Never read outside this repository root. The entire inventory and plan must come from files inside this repo.
|
|
25
|
-
- Adhere to `${{ env.REPO_RULES }}` and repository documentation (AGENTS.md, ARCHITECTURE.md, DESIGN.md, existing patterns) before finalizing the story.
|
|
26
|
-
- Reserve the very top of the body — above the form's first heading — for machine-readable lines that later workflow steps add (split markers, estimate lines). Never place story or plan content there; the workflow reads those lines regardless of the form's shape.
|
|
27
|
-
|
|
28
|
-
## Flow
|
|
29
|
-
|
|
30
|
-
1. Load `@user-story`.
|
|
31
|
-
|
|
32
|
-
2. **Coverage gate.** List every work unit from the input. For each, confirm it has exploration findings concrete enough to write an acceptance scenario: the files it touches, the models or endpoints it changes, the constraints it must respect. If any work unit is missing findings, go back and explore it now by reading the codebase. Do not draft the story until every work unit is covered. This skill's own requirement is coverage: several work units become one story that covers all of them, with at least one acceptance scenario per unit.
|
|
33
|
-
|
|
34
|
-
3. Read the codebase for what the feature touches: who the users are (auth, roles, user models, guards), what exists now (components, endpoints, models, types), where the change lands (paths, module boundaries), and what rules already govern it (validation, existing flows). Incorporate any exploration findings, including their out-of-scope decisions.
|
|
35
|
-
|
|
36
|
-
4. Draft the story against that inventory. Each work unit gets at least one acceptance scenario. Pull two or three edge cases from what the code does today: a violated constraint, an empty or half-migrated state, a permission boundary.
|
|
37
|
-
|
|
38
|
-
5. Apply repository documentation and established conventions. Read AGENTS.md, ARCHITECTURE.md, DESIGN.md and any existing patterns that govern the area being changed. Adjust the story to respect them.
|
|
39
|
-
|
|
40
|
-
6. Load `@humanizer` and run it over the prose. It cleans prose, not structure: paths, component names and Gherkin stay exact.
|
|
41
|
-
|
|
42
|
-
7. Add a Mermaid diagram only for a multi-step flow, a state transition, or a component interaction, and only the happy path. A single-resource CRUD story does not need one. If the input carried an exploration diagram, extend it rather than redrawing.
|
|
43
|
-
|
|
44
|
-
8. **Issue form: discover, select, fill.**
|
|
45
|
-
|
|
46
|
-
*Discover:* List the YAML and Markdown forms under `.github/ISSUE_TEMPLATE/`, plus a legacy `.github/issue_template.md` or a root `template.yml`. `config.yml` there only declares contact links, which are not forms: ignore it.
|
|
47
|
-
|
|
48
|
-
*Select:* When a form filters by labels and the issue carries one of those labels, that form wins. Otherwise use the repository's default form. When the repository has no form at all, keep the free-form story shape from step 4: there is nothing to wrap around.
|
|
49
|
-
|
|
50
|
-
*Fill:* Draw every field's content from your exploration findings. Required fields always get real content; optional fields only when you genuinely have something for them. The story narrative lands in the field that asks for it — proposal, description, or what-happened, depending on the form. The Given/When/Then scenarios go into the form's acceptance-criteria field when it has one; otherwise they stay a section of their own. The Mermaid diagram goes where it reads best inside the filled form.
|
|
51
|
-
|
|
52
|
-
9. **Plan section.** Using the codebase investigation from step 3, produce a structured implementation plan that goes after the story inside the issue form body. Format it as follows:
|
|
53
|
-
|
|
54
|
-
Start with a one-line scope summary, then a context paragraph describing what areas the plan touches, how many changes it breaks into, and whether the changes are independent.
|
|
55
|
-
|
|
56
|
-
Then break the feature into numbered changes. Each change:
|
|
57
|
-
|
|
58
|
-
- **Title** — what the change does.
|
|
59
|
-
- **Problem** — what is wrong or what needs to change and why. Name the file, method, or endpoint.
|
|
60
|
-
- **Fix** — bullet steps describing the implementation approach. Each step names a concrete file, method, or field.
|
|
61
|
-
- **Affected files** — a bullet list of paths with a short note on what changes in each.
|
|
62
|
-
|
|
63
|
-
After all changes, add a summary table:
|
|
64
|
-
|
|
65
|
-
```markdown
|
|
66
|
-
| Change | Files | Layer |
|
|
67
|
-
|---|---|---|
|
|
68
|
-
| 1. <title> | <file list> | <Backend | Frontend | Fullstack | Infra | Tests> |
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Then list exclusions — what is explicitly out of scope and why.
|
|
72
|
-
|
|
73
|
-
Do not write any files. The plan is part of the story output, read-only. It tells the implementer what to touch and why, so they can start without re-investigating.
|
|
74
|
-
|
|
75
|
-
10. Show the story with the issue form wrapping, the plan, and the artefacts it is grounded in, then ask what is next. If the plan has an open clarification — a wording choice, a missing constraint, an unknown API — ask it before the contracts question.
|
|
76
|
-
|
|
77
|
-
## Contracts
|
|
78
|
-
|
|
79
|
-
```json
|
|
80
|
-
{
|
|
81
|
-
"questions": [
|
|
82
|
-
{
|
|
83
|
-
"header": "What next",
|
|
84
|
-
"question": "What next?",
|
|
85
|
-
"options": [
|
|
86
|
-
{ "label": "/plan-propose", "description": "Turn this user story into a full OpenSpec proposal with design, specs, and tasks." },
|
|
87
|
-
{ "label": "/plan-quick", "description": "Create a lightweight task checklist from this story." },
|
|
88
|
-
{ "label": "Refine the story", "description": "Iterate on the story with feedback." }
|
|
89
|
-
]
|
|
90
|
-
}
|
|
91
|
-
]
|
|
92
|
-
}
|
|
93
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: pc-plan-story
|
|
3
|
+
description: Write a detailed, repo-aware user story from a feature idea or need, then wrap it in the repository's issue form and append a structured implementation plan. Loads the @user-story skill for Mike Cohn format + Gherkin acceptance criteria, analyzes the codebase for concrete context, and produces a development-ready story with a plan. Use when the user wants to write a user story, create a story from a feature idea, or turn a need into a structured story with acceptance criteria. Invoked by the /plan-story command.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Write a user story grounded in this repository. `@user-story` owns the format and the quality bar; `@humanizer` owns the prose. What this skill adds is the grounding: the personas, paths, models and components come out of the codebase, not out of a template.
|
|
8
|
+
|
|
9
|
+
## Input
|
|
10
|
+
|
|
11
|
+
A feature description, need, or rough idea, possibly with exploration findings and diagrams to align the scope with. If `$ARGUMENTS` is empty, ask what the user wants to capture.
|
|
12
|
+
|
|
13
|
+
The caller may pass exploration findings from a prior `/plan-explore` session. Treat them as the primary source for the codebase inventory; read files only to fill gaps the findings do not cover.
|
|
14
|
+
|
|
15
|
+
<!-- PC-OPTIMIZATION-MEMORY-START -->
|
|
16
|
+
<!-- PC-OPTIMIZATION-MEMORY-END -->
|
|
17
|
+
|
|
18
|
+
## Rules
|
|
19
|
+
|
|
20
|
+
- Never write, edit, or create a file, and never start the work or invoke `/plan-propose` or `/plan-quick`. The only artefacts are the story (with its issue form and plan), and one question.
|
|
21
|
+
- Never write `As a user`. The persona comes from the repo's own roles: auth middleware, route guards, user models. A story that could have been written without opening the repo is not worth reviewing.
|
|
22
|
+
- Never show the user a story that fails the `@user-story` checks. Fix it first.
|
|
23
|
+
- Every `Given`, `When` and `Then` names something real, and every `Then` is testable: a file, endpoint, model or field somebody can point at.
|
|
24
|
+
- Never read outside this repository root. The entire inventory and plan must come from files inside this repo.
|
|
25
|
+
- Adhere to `${{ env.REPO_RULES }}` and repository documentation (AGENTS.md, ARCHITECTURE.md, DESIGN.md, existing patterns) before finalizing the story.
|
|
26
|
+
- Reserve the very top of the body — above the form's first heading — for machine-readable lines that later workflow steps add (split markers, estimate lines). Never place story or plan content there; the workflow reads those lines regardless of the form's shape.
|
|
27
|
+
|
|
28
|
+
## Flow
|
|
29
|
+
|
|
30
|
+
1. Load `@user-story`.
|
|
31
|
+
|
|
32
|
+
2. **Coverage gate.** List every work unit from the input. For each, confirm it has exploration findings concrete enough to write an acceptance scenario: the files it touches, the models or endpoints it changes, the constraints it must respect. If any work unit is missing findings, go back and explore it now by reading the codebase. Do not draft the story until every work unit is covered. This skill's own requirement is coverage: several work units become one story that covers all of them, with at least one acceptance scenario per unit.
|
|
33
|
+
|
|
34
|
+
3. Read the codebase for what the feature touches: who the users are (auth, roles, user models, guards), what exists now (components, endpoints, models, types), where the change lands (paths, module boundaries), and what rules already govern it (validation, existing flows). Incorporate any exploration findings, including their out-of-scope decisions.
|
|
35
|
+
|
|
36
|
+
4. Draft the story against that inventory. Each work unit gets at least one acceptance scenario. Pull two or three edge cases from what the code does today: a violated constraint, an empty or half-migrated state, a permission boundary.
|
|
37
|
+
|
|
38
|
+
5. Apply repository documentation and established conventions. Read AGENTS.md, ARCHITECTURE.md, DESIGN.md and any existing patterns that govern the area being changed. Adjust the story to respect them.
|
|
39
|
+
|
|
40
|
+
6. Load `@humanizer` and run it over the prose. It cleans prose, not structure: paths, component names and Gherkin stay exact.
|
|
41
|
+
|
|
42
|
+
7. Add a Mermaid diagram only for a multi-step flow, a state transition, or a component interaction, and only the happy path. A single-resource CRUD story does not need one. If the input carried an exploration diagram, extend it rather than redrawing.
|
|
43
|
+
|
|
44
|
+
8. **Issue form: discover, select, fill.**
|
|
45
|
+
|
|
46
|
+
*Discover:* List the YAML and Markdown forms under `.github/ISSUE_TEMPLATE/`, plus a legacy `.github/issue_template.md` or a root `template.yml`. `config.yml` there only declares contact links, which are not forms: ignore it.
|
|
47
|
+
|
|
48
|
+
*Select:* When a form filters by labels and the issue carries one of those labels, that form wins. Otherwise use the repository's default form. When the repository has no form at all, keep the free-form story shape from step 4: there is nothing to wrap around.
|
|
49
|
+
|
|
50
|
+
*Fill:* Draw every field's content from your exploration findings. Required fields always get real content; optional fields only when you genuinely have something for them. The story narrative lands in the field that asks for it — proposal, description, or what-happened, depending on the form. The Given/When/Then scenarios go into the form's acceptance-criteria field when it has one; otherwise they stay a section of their own. The Mermaid diagram goes where it reads best inside the filled form.
|
|
51
|
+
|
|
52
|
+
9. **Plan section.** Using the codebase investigation from step 3, produce a structured implementation plan that goes after the story inside the issue form body. Format it as follows:
|
|
53
|
+
|
|
54
|
+
Start with a one-line scope summary, then a context paragraph describing what areas the plan touches, how many changes it breaks into, and whether the changes are independent.
|
|
55
|
+
|
|
56
|
+
Then break the feature into numbered changes. Each change:
|
|
57
|
+
|
|
58
|
+
- **Title** — what the change does.
|
|
59
|
+
- **Problem** — what is wrong or what needs to change and why. Name the file, method, or endpoint.
|
|
60
|
+
- **Fix** — bullet steps describing the implementation approach. Each step names a concrete file, method, or field.
|
|
61
|
+
- **Affected files** — a bullet list of paths with a short note on what changes in each.
|
|
62
|
+
|
|
63
|
+
After all changes, add a summary table:
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
| Change | Files | Layer |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| 1. <title> | <file list> | <Backend | Frontend | Fullstack | Infra | Tests> |
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Then list exclusions — what is explicitly out of scope and why.
|
|
72
|
+
|
|
73
|
+
Do not write any files. The plan is part of the story output, read-only. It tells the implementer what to touch and why, so they can start without re-investigating.
|
|
74
|
+
|
|
75
|
+
10. Show the story with the issue form wrapping, the plan, and the artefacts it is grounded in, then ask what is next. If the plan has an open clarification — a wording choice, a missing constraint, an unknown API — ask it before the contracts question.
|
|
76
|
+
|
|
77
|
+
## Contracts
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"questions": [
|
|
82
|
+
{
|
|
83
|
+
"header": "What next",
|
|
84
|
+
"question": "What next?",
|
|
85
|
+
"options": [
|
|
86
|
+
{ "label": "/plan-propose", "description": "Turn this user story into a full OpenSpec proposal with design, specs, and tasks." },
|
|
87
|
+
{ "label": "/plan-quick", "description": "Create a lightweight task checklist from this story." },
|
|
88
|
+
{ "label": "Refine the story", "description": "Iterate on the story with feedback." }
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
```
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pc-repo-audit
|
|
3
|
-
description: Audit every configured repository source root against the fullstack engineer's abilities and guardrails. Read-only. Invoked by the /repo-audit command.
|
|
4
|
-
license: MIT
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Repo Audit
|
|
8
|
-
|
|
9
|
-
Audit the repository without modifying files, installing dependencies, creating backlog items, pushing, or contacting external platforms.
|
|
10
|
-
|
|
11
|
-
## Step 1: Load the audit rules
|
|
12
|
-
|
|
13
|
-
1. Read `.opencode/agents/fullstack-engineer.md`.
|
|
14
|
-
2. Parse every `@skill-name` in its `## Abilities` section.
|
|
15
|
-
3. Load every listed skill, guardrails first. If a referenced skill is missing, record it as a finding and continue with the installed abilities.
|
|
16
|
-
|
|
17
|
-
## Step 2: Establish scope
|
|
18
|
-
|
|
19
|
-
1. Read `.opencode/source-roots.json` when it exists. Use its non-empty `roots` array; otherwise use the repository root.
|
|
20
|
-
2. Inventory every root before judging it. Identify applications, services, libraries, tests, frontend or website projects, infrastructure, CI, package manifests, lockfiles, and generated-output rules.
|
|
21
|
-
3. Keep every read and command inside a configured source root or the repository root.
|
|
22
|
-
|
|
23
|
-
## Step 3: Audit every project
|
|
24
|
-
|
|
25
|
-
Apply the loaded abilities and guardrails to each discovered project. Assess:
|
|
26
|
-
|
|
27
|
-
- Architecture, module boundaries, naming, and duplicated responsibilities.
|
|
28
|
-
- Tests, linting, type checks, builds, CI, and whether their configured commands match the project.
|
|
29
|
-
- Dependency manifests, lockfiles, package-manager declarations, runtime versions, and workspace configuration.
|
|
30
|
-
- Security and repository hygiene, including generated files, ignored artifacts, and likely secrets in tracked files.
|
|
31
|
-
- Documentation and configuration drift across `AGENTS.md`, architecture/design documents, project scripts, and CI.
|
|
32
|
-
|
|
33
|
-
For dependency findings, identify the exact manifest and lockfile involved. State the repository-defined remediation and immutable dependency validation command; never run a mutation-capable install during this audit.
|
|
34
|
-
|
|
35
|
-
## Step 4: Report
|
|
36
|
-
|
|
37
|
-
Deduplicate findings across roots and report them grouped by project. Every finding must include:
|
|
38
|
-
|
|
39
|
-
- Severity: critical, high, medium, or low.
|
|
40
|
-
- Affected root and path.
|
|
41
|
-
- Evidence and the applicable guardrail or ability, when one exists.
|
|
42
|
-
- Impact and a concrete remediation or verification command.
|
|
43
|
-
|
|
44
|
-
End with the projects audited, checks that could not run and why, and a short prioritized remediation list. If no findings exist, state that explicitly and list residual verification gaps.
|
|
1
|
+
---
|
|
2
|
+
name: pc-repo-audit
|
|
3
|
+
description: Audit every configured repository source root against the fullstack engineer's abilities and guardrails. Read-only. Invoked by the /repo-audit command.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Repo Audit
|
|
8
|
+
|
|
9
|
+
Audit the repository without modifying files, installing dependencies, creating backlog items, pushing, or contacting external platforms.
|
|
10
|
+
|
|
11
|
+
## Step 1: Load the audit rules
|
|
12
|
+
|
|
13
|
+
1. Read `.opencode/agents/fullstack-engineer.md`.
|
|
14
|
+
2. Parse every `@skill-name` in its `## Abilities` section.
|
|
15
|
+
3. Load every listed skill, guardrails first. If a referenced skill is missing, record it as a finding and continue with the installed abilities.
|
|
16
|
+
|
|
17
|
+
## Step 2: Establish scope
|
|
18
|
+
|
|
19
|
+
1. Read `.opencode/source-roots.json` when it exists. Use its non-empty `roots` array; otherwise use the repository root.
|
|
20
|
+
2. Inventory every root before judging it. Identify applications, services, libraries, tests, frontend or website projects, infrastructure, CI, package manifests, lockfiles, and generated-output rules.
|
|
21
|
+
3. Keep every read and command inside a configured source root or the repository root.
|
|
22
|
+
|
|
23
|
+
## Step 3: Audit every project
|
|
24
|
+
|
|
25
|
+
Apply the loaded abilities and guardrails to each discovered project. Assess:
|
|
26
|
+
|
|
27
|
+
- Architecture, module boundaries, naming, and duplicated responsibilities.
|
|
28
|
+
- Tests, linting, type checks, builds, CI, and whether their configured commands match the project.
|
|
29
|
+
- Dependency manifests, lockfiles, package-manager declarations, runtime versions, and workspace configuration.
|
|
30
|
+
- Security and repository hygiene, including generated files, ignored artifacts, and likely secrets in tracked files.
|
|
31
|
+
- Documentation and configuration drift across `AGENTS.md`, architecture/design documents, project scripts, and CI.
|
|
32
|
+
|
|
33
|
+
For dependency findings, identify the exact manifest and lockfile involved. State the repository-defined remediation and immutable dependency validation command; never run a mutation-capable install during this audit.
|
|
34
|
+
|
|
35
|
+
## Step 4: Report
|
|
36
|
+
|
|
37
|
+
Deduplicate findings across roots and report them grouped by project. Every finding must include:
|
|
38
|
+
|
|
39
|
+
- Severity: critical, high, medium, or low.
|
|
40
|
+
- Affected root and path.
|
|
41
|
+
- Evidence and the applicable guardrail or ability, when one exists.
|
|
42
|
+
- Impact and a concrete remediation or verification command.
|
|
43
|
+
|
|
44
|
+
End with the projects audited, checks that could not run and why, and a short prioritized remediation list. If no findings exist, state that explicitly and list residual verification gaps.
|
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pc-repo-help
|
|
3
|
-
description: The full command reference for this project - every /command with when to use it and the typical workflows. Load when the user asks for help, the command list, or at the end of repo initialization. Invoked by the /repo-help command and the repo-initialize flow.
|
|
4
|
-
license: MIT
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Repo Help
|
|
8
|
-
|
|
9
|
-
Display the following reference to the user exactly as written. Do not summarize.
|
|
10
|
-
|
|
11
|
-
## Commands
|
|
12
|
-
|
|
13
|
-
### Not sure where to start?
|
|
14
|
-
|
|
15
|
-
**`/init`** (alias: `/repo-initialize`): Initialize the project. Presents a single form with all setup questions (project type, history, architecture, design, evidence), then executes the selected steps.
|
|
16
|
-
|
|
17
|
-
**`/repo-onboard`**: Guided tour of the project and its agentic infrastructure. Explains agents, commands, skills, OpenSpec workflow, and configuration. Read-only: no files modified.
|
|
18
|
-
|
|
19
|
-
**`/repo-audit`**: Read-only health audit of every configured source root. Loads the fullstack engineer's abilities, checks guardrails, architecture, tooling, dependencies, lockfiles, tests, and CI, then reports prioritized findings.
|
|
20
|
-
|
|
21
|
-
**`/plan-explore`**: Your backlog is unclear, you have a half-formed idea, or you need to think through a problem before committing to a plan. This is a thinking partner, not an executor.
|
|
22
|
-
|
|
23
|
-
**`/plan-story <feature or need>`**: Write a detailed, repo-aware user story from a feature idea. Loads the `@user-story` skill (Mike Cohn format + Gherkin acceptance criteria), analyzes your codebase for concrete context, and produces a development-ready story with specific personas, real outcomes, and testable criteria grounded in your actual file paths, component names, and data models. No files written — just the story.
|
|
24
|
-
|
|
25
|
-
**`/plan-propose <url or idea>`**: You have a work item URL, or a clear idea and you want to turn it into a structured plan (proposal, specs, tasks). Enriches each task with the best matching agent and model before showing you the plan. Nothing is implemented until you confirm.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
### Ready to implement?
|
|
30
|
-
|
|
31
|
-
**`/plan-quick <task>`**: Quick plan for focused changes. Reads the codebase, creates a task checklist in the Todo pane. No files, no OpenSpec. Then you decide: `/plan-apply` to implement, or `/plan-propose` for a full OpenSpec plan.
|
|
32
|
-
|
|
33
|
-
**`/plan-apply`**: Implement a plan. Detects the source automatically: OpenSpec-annotated tasks (from `/plan-propose`) run as parallel subagent waves; Todo pane tasks (from `/plan-quick`) run sequentially in-session.
|
|
34
|
-
|
|
35
|
-
**`/plan-goal <feature or URL>`**: Fully autonomous, no confirmations. Branches off `main`, then runs propose → apply → archive on that branch (each phase its own commit). Default: merges to `main` and deletes the branch. Add `push` keyword to push the branch only. Add `pr` keyword to push + create a PR. Built for loop-engineering / unattended runs. Stops only on a hard failure, leaving the branch unmerged.
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
### Done implementing?
|
|
40
|
-
|
|
41
|
-
**`/ops-ship`**: Create a PR for the current feature branch with screenshots if UI changed.
|
|
42
|
-
|
|
43
|
-
**`/ops-review`**: Read and triage PR review feedback. If you share a PR URL or say "I've added comments to the PR", it reads and classifies the review comments so you know what to fix. Fixing is done via `/plan-apply`.
|
|
44
|
-
|
|
45
|
-
**`/ops-backlog`**: Create an issue in the backlog platform (GitHub, Azure DevOps, Jira) from a description.
|
|
46
|
-
|
|
47
|
-
**`/plan-archive`**: Mark a completed change as archived in OpenSpec. Run this after the PR is merged.
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
### Maintaining the project?
|
|
52
|
-
|
|
53
|
-
**`/make-engineer`**: Add a custom specialist engineer to the team. Interactive persona-driven form: pick a persona, then confirm an inspected-and-recommended set of skills (architecture/patterns like FSD or design patterns, framework, testing, infra) before anything installs. Future `/plan-apply` runs will prefer it when its domain matches.
|
|
54
|
-
|
|
55
|
-
**`/make-architecture`**: Regenerate `ARCHITECTURE.md` from the current codebase. Safe to rerun any time the architecture evolves.
|
|
56
|
-
|
|
57
|
-
**`/make-design`**: Regenerate `DESIGN.md` from the design system (Tailwind, CSS vars, tokens, etc.).
|
|
58
|
-
|
|
59
|
-
**`/make-guardrails`**: Generate a `pc-guardrails-project` skill from `ARCHITECTURE.md` and project config files. Extracts concrete rules (architecture boundaries, naming, code style, testing, git workflow) that all agents must follow. Updates every `*-engineer.md` to load the skill.
|
|
60
|
-
|
|
61
|
-
**`/repo-verify`**: Write the verification plan for the current branch's change: a journey through the new functionality as a fenced YAML block in `verification-plan.md`, stored with the change. The evidence workflow from `@plainconceptsplatform/workflows` replays it in headless Chromium when the pull request merges and archives one screenshot per waypoint in an `evidence/` folder beside the plan. Backend-only changes are traced through to the frontend when their contract is consumed there; a `not-applicable` stub is written when no UI surface is reachable. Does not run checks or take screenshots. Runs automatically in `/plan-goal`.
|
|
62
|
-
|
|
63
|
-
**`/make-user-model <tier> <model>`**: Set the model for a tier (`plan`, `build`, or `fast`). Writes to `.opencode/harness.json` (`models`). Use `user` prefix for a personal override: `/make-user-model user fast opencode/big-pickle`. Use a model id or `current` for the active session model. Restart opencode for the `pc-subagent-tiers` plugin to rebuild tier agents.
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
### Typical workflows
|
|
68
|
-
|
|
69
|
-
**Complex change:**
|
|
70
|
-
```
|
|
71
|
-
/plan-explore ← optional: think it through first
|
|
72
|
-
/plan-propose ← create the plan
|
|
73
|
-
/plan-apply ← implement with the team
|
|
74
|
-
/ops-ship ← ship
|
|
75
|
-
/plan-archive ← close out
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Quick change:**
|
|
79
|
-
```
|
|
80
|
-
/plan-quick ← create a focused task list
|
|
81
|
-
/plan-apply ← implement
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**Unattended / loop-engineering:**
|
|
85
|
-
```
|
|
86
|
-
/plan-goal <description> ← full pipeline, no interaction
|
|
87
|
-
```
|
|
1
|
+
---
|
|
2
|
+
name: pc-repo-help
|
|
3
|
+
description: The full command reference for this project - every /command with when to use it and the typical workflows. Load when the user asks for help, the command list, or at the end of repo initialization. Invoked by the /repo-help command and the repo-initialize flow.
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Repo Help
|
|
8
|
+
|
|
9
|
+
Display the following reference to the user exactly as written. Do not summarize.
|
|
10
|
+
|
|
11
|
+
## Commands
|
|
12
|
+
|
|
13
|
+
### Not sure where to start?
|
|
14
|
+
|
|
15
|
+
**`/init`** (alias: `/repo-initialize`): Initialize the project. Presents a single form with all setup questions (project type, history, architecture, design, evidence), then executes the selected steps.
|
|
16
|
+
|
|
17
|
+
**`/repo-onboard`**: Guided tour of the project and its agentic infrastructure. Explains agents, commands, skills, OpenSpec workflow, and configuration. Read-only: no files modified.
|
|
18
|
+
|
|
19
|
+
**`/repo-audit`**: Read-only health audit of every configured source root. Loads the fullstack engineer's abilities, checks guardrails, architecture, tooling, dependencies, lockfiles, tests, and CI, then reports prioritized findings.
|
|
20
|
+
|
|
21
|
+
**`/plan-explore`**: Your backlog is unclear, you have a half-formed idea, or you need to think through a problem before committing to a plan. This is a thinking partner, not an executor.
|
|
22
|
+
|
|
23
|
+
**`/plan-story <feature or need>`**: Write a detailed, repo-aware user story from a feature idea. Loads the `@user-story` skill (Mike Cohn format + Gherkin acceptance criteria), analyzes your codebase for concrete context, and produces a development-ready story with specific personas, real outcomes, and testable criteria grounded in your actual file paths, component names, and data models. No files written — just the story.
|
|
24
|
+
|
|
25
|
+
**`/plan-propose <url or idea>`**: You have a work item URL, or a clear idea and you want to turn it into a structured plan (proposal, specs, tasks). Enriches each task with the best matching agent and model before showing you the plan. Nothing is implemented until you confirm.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### Ready to implement?
|
|
30
|
+
|
|
31
|
+
**`/plan-quick <task>`**: Quick plan for focused changes. Reads the codebase, creates a task checklist in the Todo pane. No files, no OpenSpec. Then you decide: `/plan-apply` to implement, or `/plan-propose` for a full OpenSpec plan.
|
|
32
|
+
|
|
33
|
+
**`/plan-apply`**: Implement a plan. Detects the source automatically: OpenSpec-annotated tasks (from `/plan-propose`) run as parallel subagent waves; Todo pane tasks (from `/plan-quick`) run sequentially in-session.
|
|
34
|
+
|
|
35
|
+
**`/plan-goal <feature or URL>`**: Fully autonomous, no confirmations. Branches off `main`, then runs propose → apply → archive on that branch (each phase its own commit). Default: merges to `main` and deletes the branch. Add `push` keyword to push the branch only. Add `pr` keyword to push + create a PR. Built for loop-engineering / unattended runs. Stops only on a hard failure, leaving the branch unmerged.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
### Done implementing?
|
|
40
|
+
|
|
41
|
+
**`/ops-ship`**: Create a PR for the current feature branch with screenshots if UI changed.
|
|
42
|
+
|
|
43
|
+
**`/ops-review`**: Read and triage PR review feedback. If you share a PR URL or say "I've added comments to the PR", it reads and classifies the review comments so you know what to fix. Fixing is done via `/plan-apply`.
|
|
44
|
+
|
|
45
|
+
**`/ops-backlog`**: Create an issue in the backlog platform (GitHub, Azure DevOps, Jira) from a description.
|
|
46
|
+
|
|
47
|
+
**`/plan-archive`**: Mark a completed change as archived in OpenSpec. Run this after the PR is merged.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### Maintaining the project?
|
|
52
|
+
|
|
53
|
+
**`/make-engineer`**: Add a custom specialist engineer to the team. Interactive persona-driven form: pick a persona, then confirm an inspected-and-recommended set of skills (architecture/patterns like FSD or design patterns, framework, testing, infra) before anything installs. Future `/plan-apply` runs will prefer it when its domain matches.
|
|
54
|
+
|
|
55
|
+
**`/make-architecture`**: Regenerate `ARCHITECTURE.md` from the current codebase. Safe to rerun any time the architecture evolves.
|
|
56
|
+
|
|
57
|
+
**`/make-design`**: Regenerate `DESIGN.md` from the design system (Tailwind, CSS vars, tokens, etc.).
|
|
58
|
+
|
|
59
|
+
**`/make-guardrails`**: Generate a `pc-guardrails-project` skill from `ARCHITECTURE.md` and project config files. Extracts concrete rules (architecture boundaries, naming, code style, testing, git workflow) that all agents must follow. Updates every `*-engineer.md` to load the skill.
|
|
60
|
+
|
|
61
|
+
**`/repo-verify`**: Write the verification plan for the current branch's change: a journey through the new functionality as a fenced YAML block in `verification-plan.md`, stored with the change. The evidence workflow from `@plainconceptsplatform/workflows` replays it in headless Chromium when the pull request merges and archives one screenshot per waypoint in an `evidence/` folder beside the plan. Backend-only changes are traced through to the frontend when their contract is consumed there; a `not-applicable` stub is written when no UI surface is reachable. Does not run checks or take screenshots. Runs automatically in `/plan-goal`.
|
|
62
|
+
|
|
63
|
+
**`/make-user-model <tier> <model>`**: Set the model for a tier (`plan`, `build`, or `fast`). Writes to `.opencode/harness.json` (`models`). Use `user` prefix for a personal override: `/make-user-model user fast opencode/big-pickle`. Use a model id or `current` for the active session model. Restart opencode for the `pc-subagent-tiers` plugin to rebuild tier agents.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### Typical workflows
|
|
68
|
+
|
|
69
|
+
**Complex change:**
|
|
70
|
+
```
|
|
71
|
+
/plan-explore ← optional: think it through first
|
|
72
|
+
/plan-propose ← create the plan
|
|
73
|
+
/plan-apply ← implement with the team
|
|
74
|
+
/ops-ship ← ship
|
|
75
|
+
/plan-archive ← close out
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Quick change:**
|
|
79
|
+
```
|
|
80
|
+
/plan-quick ← create a focused task list
|
|
81
|
+
/plan-apply ← implement
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Unattended / loop-engineering:**
|
|
85
|
+
```
|
|
86
|
+
/plan-goal <description> ← full pipeline, no interaction
|
|
87
|
+
```
|