@duypham93/openkit 0.2.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/.opencode/README.md +47 -0
- package/.opencode/install-manifest.json +41 -0
- package/.opencode/lib/artifact-scaffolder.js +111 -0
- package/.opencode/lib/contract-consistency.js +218 -0
- package/.opencode/lib/parallel-execution-rules.js +261 -0
- package/.opencode/lib/runtime-paths.js +95 -0
- package/.opencode/lib/runtime-summary.js +82 -0
- package/.opencode/lib/state-guard.js +99 -0
- package/.opencode/lib/task-board-rules.js +375 -0
- package/.opencode/lib/work-item-store.js +280 -0
- package/.opencode/lib/workflow-state-controller.js +1739 -0
- package/.opencode/lib/workflow-state-rules.js +331 -0
- package/.opencode/opencode.json +93 -0
- package/.opencode/package.json +3 -0
- package/.opencode/tests/artifact-scaffolder.test.js +733 -0
- package/.opencode/tests/multi-work-item-runtime.test.js +369 -0
- package/.opencode/tests/parallel-execution-runtime.test.js +259 -0
- package/.opencode/tests/session-start-hook.test.js +357 -0
- package/.opencode/tests/state-guard.test.js +124 -0
- package/.opencode/tests/task-board-rules.test.js +204 -0
- package/.opencode/tests/work-item-store.test.js +380 -0
- package/.opencode/tests/workflow-behavior.test.js +149 -0
- package/.opencode/tests/workflow-contract-consistency.test.js +387 -0
- package/.opencode/tests/workflow-state-cli.test.js +1275 -0
- package/.opencode/tests/workflow-state-controller.test.js +1038 -0
- package/.opencode/work-items/feature-001/state.json +70 -0
- package/.opencode/work-items/index.json +13 -0
- package/.opencode/workflow-state.js +489 -0
- package/.opencode/workflow-state.json +70 -0
- package/AGENTS.md +265 -0
- package/README.md +401 -0
- package/agents/architect-agent.md +63 -0
- package/agents/ba-agent.md +56 -0
- package/agents/code-reviewer.md +77 -0
- package/agents/fullstack-agent.md +115 -0
- package/agents/master-orchestrator.md +60 -0
- package/agents/pm-agent.md +56 -0
- package/agents/qa-agent.md +124 -0
- package/agents/tech-lead-agent.md +60 -0
- package/assets/install-bundle/README.md +7 -0
- package/assets/install-bundle/opencode/README.md +11 -0
- package/assets/install-bundle/opencode/agents/ArchitectAgent.md +63 -0
- package/assets/install-bundle/opencode/agents/BAAgent.md +56 -0
- package/assets/install-bundle/opencode/agents/CodeReviewer.md +77 -0
- package/assets/install-bundle/opencode/agents/FullstackAgent.md +115 -0
- package/assets/install-bundle/opencode/agents/MasterOrchestrator.md +60 -0
- package/assets/install-bundle/opencode/agents/PMAgent.md +56 -0
- package/assets/install-bundle/opencode/agents/QAAgent.md +124 -0
- package/assets/install-bundle/opencode/agents/TechLeadAgent.md +60 -0
- package/assets/install-bundle/opencode/commands/brainstorm.md +44 -0
- package/assets/install-bundle/opencode/commands/delivery.md +45 -0
- package/assets/install-bundle/opencode/commands/execute-plan.md +44 -0
- package/assets/install-bundle/opencode/commands/migrate.md +61 -0
- package/assets/install-bundle/opencode/commands/quick-task.md +45 -0
- package/assets/install-bundle/opencode/commands/task.md +46 -0
- package/assets/install-bundle/opencode/commands/write-plan.md +50 -0
- package/assets/install-bundle/opencode/context/core/lane-selection.md +54 -0
- package/assets/install-bundle/opencode/skills/brainstorming/SKILL.md +51 -0
- package/assets/install-bundle/opencode/skills/code-review/SKILL.md +48 -0
- package/assets/install-bundle/opencode/skills/subagent-driven-development/SKILL.md +79 -0
- package/assets/install-bundle/opencode/skills/systematic-debugging/SKILL.md +61 -0
- package/assets/install-bundle/opencode/skills/test-driven-development/SKILL.md +48 -0
- package/assets/install-bundle/opencode/skills/using-skills/SKILL.md +39 -0
- package/assets/install-bundle/opencode/skills/verification-before-completion/SKILL.md +137 -0
- package/assets/install-bundle/opencode/skills/writing-plans/SKILL.md +68 -0
- package/assets/install-bundle/opencode/skills/writing-specs/SKILL.md +47 -0
- package/assets/opencode.json.template +11 -0
- package/assets/openkit-install.json.template +19 -0
- package/bin/openkit.js +9 -0
- package/commands/brainstorm.md +44 -0
- package/commands/delivery.md +45 -0
- package/commands/execute-plan.md +44 -0
- package/commands/migrate.md +61 -0
- package/commands/quick-task.md +45 -0
- package/commands/task.md +46 -0
- package/commands/write-plan.md +50 -0
- package/context/core/approval-gates.md +146 -0
- package/context/core/code-quality.md +42 -0
- package/context/core/issue-routing.md +85 -0
- package/context/core/lane-selection.md +54 -0
- package/context/core/project-config.md +143 -0
- package/context/core/session-resume.md +85 -0
- package/context/core/workflow-state-schema.md +224 -0
- package/context/core/workflow.md +442 -0
- package/context/navigation.md +94 -0
- package/docs/adr/README.md +6 -0
- package/docs/architecture/2026-03-20-task-intake-dashboard.md +54 -0
- package/docs/architecture/README.md +7 -0
- package/docs/briefs/2026-03-20-task-intake-dashboard.md +48 -0
- package/docs/briefs/README.md +7 -0
- package/docs/governance/README.md +25 -0
- package/docs/governance/adr-policy.md +27 -0
- package/docs/governance/definition-of-done.md +17 -0
- package/docs/governance/naming-conventions.md +21 -0
- package/docs/governance/severity-levels.md +12 -0
- package/docs/maintainer/README.md +51 -0
- package/docs/operations/README.md +79 -0
- package/docs/operations/internal-records/2026-03-24-release-checklist.md +79 -0
- package/docs/operations/internal-records/2026-03-24-simplified-install-ux.md +36 -0
- package/docs/operations/internal-records/README.md +18 -0
- package/docs/operations/runbooks/README.md +23 -0
- package/docs/operations/runbooks/openkit-daily-usage.md +288 -0
- package/docs/operations/runbooks/workflow-state-smoke-tests.md +302 -0
- package/docs/operator/README.md +50 -0
- package/docs/plans/2026-03-20-task-intake-dashboard.md +49 -0
- package/docs/plans/2026-03-21-openkit-full-delivery-multi-task-runtime.md +521 -0
- package/docs/plans/2026-03-23-openkit-global-install-runtime.md +157 -0
- package/docs/plans/README.md +7 -0
- package/docs/qa/2026-03-20-task-intake-dashboard.md +41 -0
- package/docs/qa/README.md +7 -0
- package/docs/specs/2026-03-20-task-intake-dashboard.md +50 -0
- package/docs/specs/2026-03-21-openkit-full-delivery-multi-task-runtime.md +462 -0
- package/docs/specs/README.md +7 -0
- package/docs/templates/README.md +36 -0
- package/docs/templates/adr-template.md +18 -0
- package/docs/templates/architecture-template.md +31 -0
- package/docs/templates/implementation-plan-template.md +32 -0
- package/docs/templates/migration-baseline-checklist.md +48 -0
- package/docs/templates/migration-plan-template.md +52 -0
- package/docs/templates/migration-report-template.md +74 -0
- package/docs/templates/migration-verify-checklist.md +39 -0
- package/docs/templates/product-brief-template.md +32 -0
- package/docs/templates/qa-report-template.md +37 -0
- package/docs/templates/quick-task-template.md +36 -0
- package/docs/templates/spec-template.md +31 -0
- package/hooks/hooks.json +16 -0
- package/hooks/session-start +162 -0
- package/package.json +24 -0
- package/registry.json +328 -0
- package/skills/brainstorming/SKILL.md +51 -0
- package/skills/code-review/SKILL.md +48 -0
- package/skills/subagent-driven-development/SKILL.md +79 -0
- package/skills/systematic-debugging/SKILL.md +61 -0
- package/skills/test-driven-development/SKILL.md +48 -0
- package/skills/using-skills/SKILL.md +39 -0
- package/skills/verification-before-completion/SKILL.md +137 -0
- package/skills/writing-plans/SKILL.md +68 -0
- package/skills/writing-specs/SKILL.md +47 -0
- package/src/audit/vietnamese-detection.js +259 -0
- package/src/cli/commands/detect-vietnamese.js +24 -0
- package/src/cli/commands/doctor.js +33 -0
- package/src/cli/commands/help.js +33 -0
- package/src/cli/commands/init.js +25 -0
- package/src/cli/commands/install-global.js +26 -0
- package/src/cli/commands/install.js +25 -0
- package/src/cli/commands/run.js +63 -0
- package/src/cli/commands/uninstall.js +32 -0
- package/src/cli/commands/upgrade.js +25 -0
- package/src/cli/conflict-output.js +19 -0
- package/src/cli/index.js +56 -0
- package/src/global/doctor.js +101 -0
- package/src/global/ensure-install.js +32 -0
- package/src/global/install-state.js +73 -0
- package/src/global/launcher.js +51 -0
- package/src/global/materialize.js +123 -0
- package/src/global/paths.js +85 -0
- package/src/global/uninstall.js +25 -0
- package/src/global/workspace-state.js +63 -0
- package/src/install/asset-manifest.js +284 -0
- package/src/install/conflicts.js +43 -0
- package/src/install/discovery.js +138 -0
- package/src/install/install-state.js +136 -0
- package/src/install/materialize.js +158 -0
- package/src/install/merge-policy.js +145 -0
- package/src/runtime/doctor.js +281 -0
- package/src/runtime/launcher.js +49 -0
- package/src/runtime/opencode-layering.js +135 -0
- package/src/runtime/openkit-managed-summary.js +27 -0
- package/tests/cli/openkit-cli.test.js +417 -0
- package/tests/global/doctor.test.js +130 -0
- package/tests/global/ensure-install.test.js +105 -0
- package/tests/install/discovery.test.js +124 -0
- package/tests/install/install-state.test.js +346 -0
- package/tests/install/materialize.test.js +244 -0
- package/tests/install/merge-policy.test.js +177 -0
- package/tests/runtime/doctor.test.js +430 -0
- package/tests/runtime/launcher.test.js +230 -0
- package/tests/runtime/module-boundary.test.js +16 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: writing-plans
|
|
3
|
+
description: "Converts approved architecture and scope into bite-sized implementation plans with validation matched to the workflow mode."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: Writing Implementation Plans
|
|
7
|
+
|
|
8
|
+
## Context
|
|
9
|
+
|
|
10
|
+
This skill is used by the Tech Lead Agent. It turns design documents (spec and architecture) into concrete coding steps that the Fullstack Agent can execute.
|
|
11
|
+
|
|
12
|
+
Each plan should be detailed enough that the Fullstack Agent can execute it without guesswork.
|
|
13
|
+
|
|
14
|
+
## Core Rules of a Good Plan
|
|
15
|
+
|
|
16
|
+
1. **Bite-sized tasks**: each task should take roughly 2-5 minutes. If a task looks like more than 10 minutes, split it smaller.
|
|
17
|
+
2. **Atomic steps**: each step should be a complete, testable unit. Do not leave half-finished code behind.
|
|
18
|
+
3. **Exact file paths**: specify the exact absolute path or repository-relative path for every file to create or edit.
|
|
19
|
+
4. **Validation flow**: plan validation must match the active workflow mode. Full-delivery logic work should be TDD-first when the repository has suitable test tooling. Migration work should prioritize preserved invariants, blocker-decoupling steps, compatibility checks, staged verification, and targeted tests only where they are truly reliable and helpful. If the repo does not define a standard command yet, the plan must state the missing validation path instead of inventing one.
|
|
20
|
+
|
|
21
|
+
## Execution Process
|
|
22
|
+
|
|
23
|
+
### Step 1: Context Gathering
|
|
24
|
+
Make sure you have read:
|
|
25
|
+
- `docs/specs/YYYY-MM-DD-<feature>.md`
|
|
26
|
+
- `docs/architecture/YYYY-MM-DD-<feature>.md`
|
|
27
|
+
- `context/core/code-quality.md`
|
|
28
|
+
|
|
29
|
+
### Step 2: Write the Plan Document
|
|
30
|
+
|
|
31
|
+
Create `docs/plans/YYYY-MM-DD-<feature>.md` using this structure:
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
# Implementation Plan: [Feature Name]
|
|
35
|
+
|
|
36
|
+
## Dependencies
|
|
37
|
+
- Are any additional packages required? (`npm install X`, `pip install Y`)
|
|
38
|
+
- Are any environment variables required?
|
|
39
|
+
|
|
40
|
+
## Implementation Steps
|
|
41
|
+
|
|
42
|
+
For each task, follow a validation-aware structure:
|
|
43
|
+
|
|
44
|
+
### [ ] Task 1: [Specific action name, e.g. Init Database Schema]
|
|
45
|
+
- **File**: `path/to/file.ext`
|
|
46
|
+
- **Goal**: [Brief description]
|
|
47
|
+
- **Validation Command**: `[test/build/typecheck/smoke/manual verification command for this step, or an explicit note that no repo-native validation command exists yet]`
|
|
48
|
+
- **Details**:
|
|
49
|
+
- State the baseline or expected change for this step
|
|
50
|
+
- State the implementation or upgrade action
|
|
51
|
+
- State how the result will be verified honestly
|
|
52
|
+
|
|
53
|
+
### [ ] Task 2: [Next task]
|
|
54
|
+
...
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Step 3: Review and Refine
|
|
58
|
+
- Are the tasks small enough?
|
|
59
|
+
- Does any task require changing more than 3 files at once? -> If yes, split it.
|
|
60
|
+
- In full mode, does any logic task skip the "write test first" step without justification? -> Add the test requirement.
|
|
61
|
+
- In migration mode, does the plan mix rewrite work into the migration instead of isolating blockers and proving parity? -> Rewrite the sequence.
|
|
62
|
+
- In migration mode, does the plan rely on fake TDD instead of baseline, compatibility, and regression evidence? -> Rewrite the validation guidance.
|
|
63
|
+
- Does the plan cover all acceptance criteria from the spec?
|
|
64
|
+
|
|
65
|
+
## Anti-Patterns
|
|
66
|
+
- "Task 1: Build the frontend, Task 2: Build the backend." (Far too large.)
|
|
67
|
+
- No test guidance or test command, and no explicit note that the repo lacks a standard command.
|
|
68
|
+
- A plan that does not specify which files need to be edited.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: writing-specs
|
|
3
|
+
description: "Converts requirements into structured spec documents with concrete acceptance criteria."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Skill: Writing Specs
|
|
7
|
+
|
|
8
|
+
## Context
|
|
9
|
+
|
|
10
|
+
This skill is used by the BA Agent to turn a high-level Product Brief into a detailed low-level spec that is ready for the Architect and the development team.
|
|
11
|
+
|
|
12
|
+
## Execution Process
|
|
13
|
+
|
|
14
|
+
### 1. Verification (Input Check)
|
|
15
|
+
- Make sure you already have a Product Brief.
|
|
16
|
+
- If the Product Brief is still vague (for example: "make it faster"), go back to the PM Agent or user and get measurable detail.
|
|
17
|
+
|
|
18
|
+
### 2. User Stories Breakdown
|
|
19
|
+
Break the feature into user flows (user stories).
|
|
20
|
+
**Required format:** `As a [User Type], I want [Action], so that [Benefit/Value].`
|
|
21
|
+
|
|
22
|
+
### 3. BDD Acceptance Criteria
|
|
23
|
+
This is the hardest and most important section. Each user story must include Given-When-Then acceptance criteria.
|
|
24
|
+
|
|
25
|
+
**Bad example (too vague):**
|
|
26
|
+
> The submit button should be disabled when the data is invalid.
|
|
27
|
+
|
|
28
|
+
**Good example (Given-When-Then):**
|
|
29
|
+
> **Given** the user is on the "Create New" form
|
|
30
|
+
> **And** the "Email" field is blank or invalid
|
|
31
|
+
> **When** they try to click the "Submit" button
|
|
32
|
+
> **Then** the "Submit" button must be disabled
|
|
33
|
+
> **And** an empty/invalid-format error message appears under the "Email" field
|
|
34
|
+
|
|
35
|
+
### 4. Edge Cases
|
|
36
|
+
You must include a dedicated section for failure conditions and awkward scenarios:
|
|
37
|
+
- What happens if the network drops mid-request?
|
|
38
|
+
- What happens if the user double-clicks the button?
|
|
39
|
+
- What happens with input that is too long, too short, or contains special characters?
|
|
40
|
+
- Race conditions?
|
|
41
|
+
|
|
42
|
+
### 5. Document Output
|
|
43
|
+
Create the markdown file at `docs/specs/YYYY-MM-DD-<feature-name>.md`.
|
|
44
|
+
|
|
45
|
+
## Anti-Patterns to Avoid
|
|
46
|
+
- **Tech leaking**: putting technical implementation decisions in the spec (for example: "Use React `useState` to store the form"). A spec should describe behavior and requirements, not code.
|
|
47
|
+
- **Unmeasurable goals**: "beautiful UI", "fast performance". Replace them with measurable requirements like "responsive on mobile" or "response time < 200ms".
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "openkit/install-state@1",
|
|
3
|
+
"stateVersion": 1,
|
|
4
|
+
"kit": {
|
|
5
|
+
"name": "OpenKit",
|
|
6
|
+
"version": "0.1.0"
|
|
7
|
+
},
|
|
8
|
+
"installation": {
|
|
9
|
+
"profile": "openkit-core",
|
|
10
|
+
"status": "installed",
|
|
11
|
+
"installedAt": "1970-01-01T00:00:00.000Z"
|
|
12
|
+
},
|
|
13
|
+
"assets": {
|
|
14
|
+
"managed": [],
|
|
15
|
+
"adopted": []
|
|
16
|
+
},
|
|
17
|
+
"warnings": [],
|
|
18
|
+
"conflicts": []
|
|
19
|
+
}
|
package/bin/openkit.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Starts Migration or Full Delivery design exploration with the brainstorming skill."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command: `/brainstorm`
|
|
6
|
+
|
|
7
|
+
Use `/brainstorm` when work is already in `Migration` or `Full Delivery` mode and the team needs to refine design direction before implementation planning.
|
|
8
|
+
|
|
9
|
+
## Preconditions
|
|
10
|
+
|
|
11
|
+
- The current `mode` must be `full` or `migration`
|
|
12
|
+
- The work needs design clarification, product exploration, architecture framing, or upgrade strategy exploration before plan execution
|
|
13
|
+
- If work is resuming, the current state must be readable before the session continues
|
|
14
|
+
|
|
15
|
+
## Canonical docs to load
|
|
16
|
+
|
|
17
|
+
- `AGENTS.md`
|
|
18
|
+
- `context/navigation.md`
|
|
19
|
+
- `context/core/workflow.md`
|
|
20
|
+
- `context/core/project-config.md`
|
|
21
|
+
- `.opencode/workflow-state.json` when resuming
|
|
22
|
+
- skill `brainstorming`
|
|
23
|
+
|
|
24
|
+
For operator checks, use the current workflow-state utility surface: `status`, `doctor`, `show`, and `validate`.
|
|
25
|
+
|
|
26
|
+
## Expected action
|
|
27
|
+
|
|
28
|
+
- Confirm the work is in `Migration` or `Full Delivery` mode before starting brainstorming
|
|
29
|
+
- Use the brainstorming skill to explore the problem, compare approaches, and converge on a design
|
|
30
|
+
- In migration mode, use brainstorming to identify preserved invariants, migration blockers, seams, adapters, and slice boundaries before implementation planning
|
|
31
|
+
- Create or refine the appropriate artifact for the active mode only when the skill outcome requires it
|
|
32
|
+
- Point back to `context/core/workflow.md` for stage order, approvals, and escalation rules instead of restating them here
|
|
33
|
+
|
|
34
|
+
## Rejection or escalation behavior
|
|
35
|
+
|
|
36
|
+
- If the work is still in the quick lane, stop and escalate into `Migration` or `Full Delivery` before using this command
|
|
37
|
+
- If the request is too incomplete to brainstorm safely, stop and ask for the missing context instead of fabricating direction
|
|
38
|
+
- Do not use this command to imply an alternate workflow or any live parallel execution feature that the repository does not currently document
|
|
39
|
+
|
|
40
|
+
## Validation guidance
|
|
41
|
+
|
|
42
|
+
- Use `node .opencode/workflow-state.js show` or `node .opencode/workflow-state.js validate` when resumable state needs confirmation
|
|
43
|
+
- Brainstorming output is design and workflow evidence, not app build/lint/test evidence
|
|
44
|
+
- If the repository has no app-native validation commands for the eventual implementation, record that constraint honestly in downstream artifacts
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Starts the Full Delivery lane for feature work and higher-risk changes."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command: `/delivery`
|
|
6
|
+
|
|
7
|
+
Use `/delivery` when work needs the full lane from the start or when quick or migration work has already escalated.
|
|
8
|
+
|
|
9
|
+
## Preconditions
|
|
10
|
+
|
|
11
|
+
- The request satisfies one or more full-lane triggers in `context/core/workflow.md`
|
|
12
|
+
- If this is resumed work, escalation context or the current full stage must be read from workflow state before continuing
|
|
13
|
+
|
|
14
|
+
## Canonical docs to load
|
|
15
|
+
|
|
16
|
+
- `AGENTS.md`
|
|
17
|
+
- `context/navigation.md`
|
|
18
|
+
- `context/core/workflow.md`
|
|
19
|
+
- `context/core/lane-selection.md`
|
|
20
|
+
- `context/core/approval-gates.md`
|
|
21
|
+
- `context/core/project-config.md`
|
|
22
|
+
- `.opencode/workflow-state.json` when resuming
|
|
23
|
+
|
|
24
|
+
For operator checks, use the current workflow-state utility surface: `status`, `doctor`, `show`, and `validate`.
|
|
25
|
+
|
|
26
|
+
## Expected action
|
|
27
|
+
|
|
28
|
+
- The Master Orchestrator records `mode = full` and `mode_reason`
|
|
29
|
+
- Initialize `full_intake`
|
|
30
|
+
- Route to the PM Agent to begin the Full Delivery chain defined in `context/core/workflow.md`
|
|
31
|
+
- Track approval gates in workflow state before each stage advance
|
|
32
|
+
- Use this lane when the dominant uncertainty is product behavior, requirements, or cross-boundary solution design rather than compatibility modernization
|
|
33
|
+
|
|
34
|
+
## Rejection or escalation behavior
|
|
35
|
+
|
|
36
|
+
- If the command is entered from an active quick or migration context, preserve escalation metadata while moving into `full_intake`
|
|
37
|
+
- If the command explicitly asks for full mode but the routing profile still shows behavior-preserving modernization with compatibility uncertainty, reject full admission and reroute to migration instead of silently widening the lane
|
|
38
|
+
- If required full-mode context is missing or state is contradictory, stop at intake and report the mismatch instead of skipping a stage
|
|
39
|
+
- Do not create a new lane, new stage, or alternate full-entry chain outside the canonical workflow doc
|
|
40
|
+
|
|
41
|
+
## Validation guidance
|
|
42
|
+
|
|
43
|
+
- Use `node .opencode/workflow-state.js show` or `node .opencode/workflow-state.js validate` when resumable full-mode state needs confirmation
|
|
44
|
+
- Keep implementation and QA validation honest to the repository's actual tooling
|
|
45
|
+
- Do not overstate automation when the repository still lacks app-native build, lint, or test commands
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Executes an approved Full Delivery or Migration implementation plan."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command: `/execute-plan`
|
|
6
|
+
|
|
7
|
+
Use `/execute-plan` when an approved Full Delivery or Migration implementation plan is ready to be carried out.
|
|
8
|
+
|
|
9
|
+
## Preconditions
|
|
10
|
+
|
|
11
|
+
- The current `mode` must be `full` or `migration`
|
|
12
|
+
- An approved plan exists in `docs/plans/` for the current work item
|
|
13
|
+
- Any required upstream approvals for the active mode are already recorded in workflow state
|
|
14
|
+
|
|
15
|
+
## Canonical docs to load
|
|
16
|
+
|
|
17
|
+
- `AGENTS.md`
|
|
18
|
+
- `context/navigation.md`
|
|
19
|
+
- `context/core/workflow.md`
|
|
20
|
+
- `context/core/project-config.md`
|
|
21
|
+
- `context/core/session-resume.md`
|
|
22
|
+
- `context/core/workflow-state-schema.md`
|
|
23
|
+
- `.opencode/workflow-state.json`
|
|
24
|
+
|
|
25
|
+
For operator checks, use the current workflow-state utility surface: `status`, `doctor`, `show`, and `validate`.
|
|
26
|
+
|
|
27
|
+
## Expected action
|
|
28
|
+
|
|
29
|
+
- Confirm the current state is compatible with implementation work for the active mode
|
|
30
|
+
- Read the approved plan and execute it without redefining the canonical workflow rules
|
|
31
|
+
- Use the real implementation workflow available in the repository; do not imply live parallel execution support beyond what the checked-in runtime documents today
|
|
32
|
+
- Report the actual validation path taken for each meaningful change
|
|
33
|
+
|
|
34
|
+
## Rejection or escalation behavior
|
|
35
|
+
|
|
36
|
+
- If the work is still in quick mode, stop and route it into `Migration` or `Full Delivery` before using this command
|
|
37
|
+
- If workflow state is invalid, contradictory, or missing required approvals, stop and correct state or inputs before implementation
|
|
38
|
+
- If the plan is missing, stale, or unapproved, stop and send the work back to the planning step instead of improvising a new plan inline
|
|
39
|
+
|
|
40
|
+
## Validation guidance
|
|
41
|
+
|
|
42
|
+
- Run `node .opencode/workflow-state.js validate` when you need to confirm workflow-state integrity before execution
|
|
43
|
+
- Use repo-native app build, lint, or test commands only if they actually exist and are documented
|
|
44
|
+
- If the repository still lacks app-native validation tooling, report manual checks or other real evidence instead of inventing automation
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Starts the Migration lane for upgrades, framework migrations, and dependency modernization."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command: `/migrate`
|
|
6
|
+
|
|
7
|
+
Use `/migrate` when work is primarily a project migration or upgrade effort such as framework version jumps, dependency replacement, legacy API removal, or compatibility remediation.
|
|
8
|
+
|
|
9
|
+
Core migration principle:
|
|
10
|
+
|
|
11
|
+
- preserve behavior first, decouple blockers where necessary, and migrate incrementally instead of rewriting the product
|
|
12
|
+
|
|
13
|
+
## Preconditions
|
|
14
|
+
|
|
15
|
+
- The request is centered on upgrading or migrating an existing codebase rather than delivering a net-new feature
|
|
16
|
+
- The work needs discovery of the current baseline, compatibility risks, and staged upgrade execution
|
|
17
|
+
- The migration is expected to preserve existing layout, flows, contracts, and core logic unless an explicit exception is documented
|
|
18
|
+
- If work is resuming, the current migration state must be readable before continuing
|
|
19
|
+
- Product requirements are mostly known already, even if the technical upgrade path is still uncertain
|
|
20
|
+
|
|
21
|
+
## Canonical docs to load
|
|
22
|
+
|
|
23
|
+
- `AGENTS.md`
|
|
24
|
+
- `context/navigation.md`
|
|
25
|
+
- `context/core/workflow.md`
|
|
26
|
+
- `context/core/lane-selection.md`
|
|
27
|
+
- `context/core/approval-gates.md`
|
|
28
|
+
- `context/core/project-config.md`
|
|
29
|
+
- `docs/templates/migration-baseline-checklist.md`
|
|
30
|
+
- `docs/templates/migration-verify-checklist.md`
|
|
31
|
+
- `.opencode/workflow-state.json` when resuming
|
|
32
|
+
|
|
33
|
+
For operator checks, use the current workflow-state utility surface: `status`, `doctor`, `show`, and `validate`.
|
|
34
|
+
|
|
35
|
+
## Expected action
|
|
36
|
+
|
|
37
|
+
- The Master Orchestrator records `mode = migration` and `mode_reason`
|
|
38
|
+
- Initialize `migration_intake`
|
|
39
|
+
- Route to the migration baseline and strategy stages defined in `context/core/workflow.md`
|
|
40
|
+
- Freeze the preserved invariants before major edits, then identify only the framework-coupled blockers that must be decoupled
|
|
41
|
+
- Use adapters, seams, or compatibility shims when they make the migration safer
|
|
42
|
+
- Use `docs/templates/migration-baseline-checklist.md` during `migration_baseline` and `docs/templates/migration-verify-checklist.md` during `migration_verify`
|
|
43
|
+
- If the team wants one living migration artifact, scaffold `migration_report` during `migration_baseline` or `migration_strategy`
|
|
44
|
+
- Keep validation focused on baseline capture, compatibility evidence, staged execution, and regression checks rather than defaulting to TDD-first execution
|
|
45
|
+
|
|
46
|
+
## Rejection or escalation behavior
|
|
47
|
+
|
|
48
|
+
- If the request is actually bounded low-risk work, reject migration entry and reroute to the quick lane
|
|
49
|
+
- If the request is actually a net-new feature or requirement-definition problem, reject migration entry and reroute to `full_intake`
|
|
50
|
+
- If the command explicitly asks for migration but the routing profile points to `quick` or `full`, reject migration admission instead of preserving a contradictory lane
|
|
51
|
+
- If migration work uncovers product or requirements ambiguity, preserve escalation metadata while moving into `full_intake`
|
|
52
|
+
- If the proposed approach is effectively a rewrite instead of a behavior-preserving migration, stop and restate the migration slices before continuing
|
|
53
|
+
- If the main uncertainty is product behavior rather than compatibility or modernization, stop using migration and reroute to `full`
|
|
54
|
+
|
|
55
|
+
## Validation guidance
|
|
56
|
+
|
|
57
|
+
- Prefer real build, test, codemod, type-check, smoke-test, and manual regression evidence from the target project
|
|
58
|
+
- Prefer parity checks against the preserved baseline: screenshots, behavior notes, contracts, smoke paths, and targeted regression evidence
|
|
59
|
+
- Prefer `migration_report` when baseline notes, execution log, and verification evidence need to stay in one continuously updated file
|
|
60
|
+
- If repository-native validation commands do not exist, record the missing validation path and the baseline evidence honestly
|
|
61
|
+
- Do not claim TDD-first validation for migration work unless the migration plan explicitly identifies a safe test-first sub-slice with working tooling
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Starts the Quick Task lane for narrow, low-risk work."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command: `/quick-task`
|
|
6
|
+
|
|
7
|
+
Use `/quick-task` when the user wants to enter the quick lane directly for bounded small-to-medium work that stays within the quick-lane limits, remains lower risk, and uses a short verification path.
|
|
8
|
+
|
|
9
|
+
## Preconditions
|
|
10
|
+
|
|
11
|
+
- The request must satisfy quick-lane criteria in `context/core/workflow.md`
|
|
12
|
+
- If work is resuming, the current state must be compatible with continuing quick work or starting a new task
|
|
13
|
+
|
|
14
|
+
## Canonical docs to load
|
|
15
|
+
|
|
16
|
+
- `AGENTS.md`
|
|
17
|
+
- `context/navigation.md`
|
|
18
|
+
- `context/core/workflow.md`
|
|
19
|
+
- `context/core/lane-selection.md`
|
|
20
|
+
- `context/core/project-config.md`
|
|
21
|
+
- `.opencode/workflow-state.json` when resuming
|
|
22
|
+
|
|
23
|
+
For operator checks, use the current workflow-state utility surface: `status`, `doctor`, `show`, and `validate`.
|
|
24
|
+
|
|
25
|
+
## Expected action
|
|
26
|
+
|
|
27
|
+
- The Master Orchestrator confirms quick eligibility
|
|
28
|
+
- Record `mode = quick` and `mode_reason`
|
|
29
|
+
- Initialize `quick_intake`, prepare the quick intake context, then advance to `quick_plan`
|
|
30
|
+
- Once the required `quick_plan` context is ready, route into `quick_build` with the Fullstack Agent
|
|
31
|
+
- Create an optional task card only when traceability is genuinely useful
|
|
32
|
+
- Reject quick entry if compatibility or modernization risk is the dominant reason the user asked for the work
|
|
33
|
+
|
|
34
|
+
## Rejection or escalation behavior
|
|
35
|
+
|
|
36
|
+
- If the request does not meet quick criteria, reject quick entry and reroute through `migration_intake` or `full_intake` based on the canonical workflow rules
|
|
37
|
+
- If the command explicitly asks for quick mode but the routing profile would classify the work as `migration` or `full`, reject quick admission instead of silently keeping the wrong lane
|
|
38
|
+
- If an escalation condition appears during the quick loop, the Master Orchestrator must switch the work into `full_intake`
|
|
39
|
+
- If useful for operator clarity, explain that the work now belongs in Full Delivery without redefining the command surface
|
|
40
|
+
|
|
41
|
+
## Validation guidance
|
|
42
|
+
|
|
43
|
+
- Keep quick-task validation short and real, following `context/core/project-config.md`
|
|
44
|
+
- If no app-native test or lint command exists, document the manual or artifact-based verification path clearly
|
|
45
|
+
- Use `node .opencode/workflow-state.js validate` only for workflow-state checks, not as a substitute for application testing
|
package/commands/task.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Default entry command. Lets the Master Orchestrator classify work into Quick Task, Migration, or Full Delivery."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command: `/task`
|
|
6
|
+
|
|
7
|
+
Use `/task` when the user wants the default entrypoint and expects the Master Orchestrator to choose the lane.
|
|
8
|
+
|
|
9
|
+
## Preconditions
|
|
10
|
+
|
|
11
|
+
- A user request exists with enough information to summarize the initial goal, scope, and risk
|
|
12
|
+
- If the workflow is resuming, the current workflow state must be readable before rerouting
|
|
13
|
+
|
|
14
|
+
## Canonical docs to load
|
|
15
|
+
|
|
16
|
+
- `AGENTS.md`
|
|
17
|
+
- `context/navigation.md`
|
|
18
|
+
- `context/core/workflow.md`
|
|
19
|
+
- `context/core/lane-selection.md`
|
|
20
|
+
- `context/core/project-config.md`
|
|
21
|
+
- `.opencode/workflow-state.json` when resuming
|
|
22
|
+
|
|
23
|
+
For operator checks, use the current workflow-state utility surface: `status`, `doctor`, `show`, and `validate`.
|
|
24
|
+
|
|
25
|
+
## Expected action
|
|
26
|
+
|
|
27
|
+
- The Master Orchestrator chooses `quick`, `migration`, or `full` using the canonical workflow rules
|
|
28
|
+
- Record `mode` and `mode_reason` in workflow state
|
|
29
|
+
- If the task enters the quick lane, initialize quick intake context and continue through the canonical quick stage chain
|
|
30
|
+
- If the task enters the migration lane, initialize `migration_intake` and continue through the canonical migration stage chain
|
|
31
|
+
- If the task enters the full lane, initialize `full_intake` and route to the PM agent
|
|
32
|
+
- When choosing migration, prefer a behavior-preserving path that decouples blockers before changing the stack broadly
|
|
33
|
+
- Use the lane tie-breaker from `context/core/workflow.md`: product ambiguity goes to `full`, compatibility uncertainty with preserved behavior goes to `migration`, and only bounded low-risk work goes to `quick`
|
|
34
|
+
|
|
35
|
+
## Rejection or escalation behavior
|
|
36
|
+
|
|
37
|
+
- If the request is ambiguous because product behavior, requirements, or acceptance are unclear, route it to `Full Delivery` per `context/core/workflow.md`
|
|
38
|
+
- If the request is uncertain mainly because of upgrade or compatibility risk while the target behavior is already known, route it to `Migration`
|
|
39
|
+
- If the request is too incomplete to open even `full_intake`, stop at intake and ask for clarification instead of guessing
|
|
40
|
+
- If the quick lane is not appropriate under `context/core/workflow.md`, route directly to the migration or full lane that best matches the request
|
|
41
|
+
|
|
42
|
+
## Validation guidance
|
|
43
|
+
|
|
44
|
+
- Use `node .opencode/workflow-state.js status` or `node .opencode/workflow-state.js show` to inspect resumable state before rerouting when needed
|
|
45
|
+
- Use `node .opencode/workflow-state.js validate` if the saved state looks stale or manually edited
|
|
46
|
+
- Do not imply repo-native app build, lint, or test commands exist when this repository has not defined them
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Triggers the writing-plans skill to create bite-sized tasks from specs."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Command: `/write-plan`
|
|
6
|
+
|
|
7
|
+
Use `/write-plan` to create an implementation plan for work currently in `Full Delivery` or `Migration` mode.
|
|
8
|
+
|
|
9
|
+
## Preconditions
|
|
10
|
+
|
|
11
|
+
- The current `mode` must be `full` or `migration`
|
|
12
|
+
- The required architecture artifact already exists for the current work item
|
|
13
|
+
- If the work is in `full`, the required spec artifact already exists for the current feature
|
|
14
|
+
- The Tech Lead Agent is at the stage where `docs/plans/...` should be created
|
|
15
|
+
|
|
16
|
+
## Canonical docs to load
|
|
17
|
+
|
|
18
|
+
- `AGENTS.md`
|
|
19
|
+
- `context/navigation.md`
|
|
20
|
+
- `context/core/workflow.md`
|
|
21
|
+
- `context/core/project-config.md`
|
|
22
|
+
- `.opencode/workflow-state.json`
|
|
23
|
+
- `docs/templates/implementation-plan-template.md`
|
|
24
|
+
- `docs/templates/migration-report-template.md` when migration work benefits from one running artifact
|
|
25
|
+
- skill `writing-plans`
|
|
26
|
+
|
|
27
|
+
For operator checks, use the current workflow-state utility surface: `status`, `doctor`, `show`, and `validate`.
|
|
28
|
+
|
|
29
|
+
## Expected action
|
|
30
|
+
|
|
31
|
+
- Create or update `docs/plans/YYYY-MM-DD-<feature>.md`
|
|
32
|
+
- Keep the plan aligned with the current stage and approval context for the active mode
|
|
33
|
+
- In migration mode, record preserved invariants, seam or adapter steps, and parity checks explicitly
|
|
34
|
+
- In migration mode, recommend scaffolding or updating `migration_report` when baseline, plan, execution, and verification should stay visible in one artifact
|
|
35
|
+
- Record the real validation path, or a missing-validation-path note when the repository has no suitable command
|
|
36
|
+
- Return the plan for review and approval through the canonical workflow for the active mode
|
|
37
|
+
|
|
38
|
+
## Rejection or escalation behavior
|
|
39
|
+
|
|
40
|
+
- If work is still in quick mode, reject this command and route the task into Migration or Full Delivery first
|
|
41
|
+
- If required architecture input is incomplete, stop and require that upstream artifact before writing the plan
|
|
42
|
+
- If work is in `full` and the spec input is incomplete, stop and require that upstream artifact before writing the plan
|
|
43
|
+
- Do not use this command to open a new full lane implicitly or bypass the approval chain
|
|
44
|
+
|
|
45
|
+
## Validation guidance
|
|
46
|
+
|
|
47
|
+
- The plan should name the strongest real validation path available in the repository
|
|
48
|
+
- In migration mode, use `migration_report` when handoffs would benefit from a single running narrative instead of scattered notes
|
|
49
|
+
- If no repo-native app build, lint, or test command exists, say that explicitly in the plan instead of guessing a stack command
|
|
50
|
+
- Use `node .opencode/workflow-state.js validate` only to confirm workflow state, not to stand in for implementation verification
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Approval Gates
|
|
2
|
+
|
|
3
|
+
This file defines how stage transitions are recorded and approved.
|
|
4
|
+
|
|
5
|
+
For the canonical workflow contract, including lane semantics, stage order, and artifact expectations, use `context/core/workflow.md`.
|
|
6
|
+
|
|
7
|
+
Approval behavior is mode-aware. `Quick Task`, `Migration`, and `Full Delivery` do not share the same gate set.
|
|
8
|
+
|
|
9
|
+
## Gate States
|
|
10
|
+
|
|
11
|
+
- `pending`: work exists but approval has not been granted
|
|
12
|
+
- `approved`: transition may proceed
|
|
13
|
+
- `rejected`: transition is blocked until feedback is addressed
|
|
14
|
+
|
|
15
|
+
## Required Fields Per Gate
|
|
16
|
+
|
|
17
|
+
Each gate entry mirrored in `.opencode/workflow-state.json` for the active work item must contain:
|
|
18
|
+
|
|
19
|
+
- `status`
|
|
20
|
+
- `approved_by`
|
|
21
|
+
- `approved_at`
|
|
22
|
+
- `notes`
|
|
23
|
+
|
|
24
|
+
## Quick Task Gates
|
|
25
|
+
|
|
26
|
+
Quick mode uses one required gate:
|
|
27
|
+
|
|
28
|
+
- `quick_verified`
|
|
29
|
+
|
|
30
|
+
Meaning:
|
|
31
|
+
|
|
32
|
+
- the user request is treated as implicit approval to start quick work unless the task is ambiguous or risky
|
|
33
|
+
- `quick_verified` becomes `approved` only after QA Lite passes
|
|
34
|
+
- `QA Agent` is the approval authority for `quick_verified`
|
|
35
|
+
- the builder may supply evidence and recommended disposition, but cannot self-approve the gate
|
|
36
|
+
|
|
37
|
+
Transition rule:
|
|
38
|
+
|
|
39
|
+
- `quick_verify -> quick_done` requires `quick_verified = approved`
|
|
40
|
+
|
|
41
|
+
`quick_plan` does not add a second quick approval gate. It is a required planning stage, but quick-mode completion still depends on `quick_verified` after QA Lite passes.
|
|
42
|
+
|
|
43
|
+
Readiness rule before `quick_verified` approval:
|
|
44
|
+
|
|
45
|
+
- quick checklist and acceptance bullets are inspectable
|
|
46
|
+
- intended verification path is inspectable
|
|
47
|
+
- QA Lite evidence is inspectable in workflow state or session artifacts
|
|
48
|
+
- unresolved design or requirement issues are escalated instead of approved through
|
|
49
|
+
|
|
50
|
+
## Migration Gates
|
|
51
|
+
|
|
52
|
+
Migration mode uses four required gates:
|
|
53
|
+
|
|
54
|
+
- `baseline_to_strategy`
|
|
55
|
+
- `strategy_to_upgrade`
|
|
56
|
+
- `upgrade_to_verify`
|
|
57
|
+
- `migration_verified`
|
|
58
|
+
|
|
59
|
+
Meaning:
|
|
60
|
+
|
|
61
|
+
- `baseline_to_strategy` confirms the baseline, compatibility map, and likely breakpoints are inspectable enough for staged planning
|
|
62
|
+
- `strategy_to_upgrade` confirms the staged upgrade sequence, rollback checkpoints, and validation path are ready for execution
|
|
63
|
+
- `upgrade_to_verify` confirms upgrade execution evidence is inspectable enough for regression and compatibility QA
|
|
64
|
+
- `migration_verified` becomes `approved` only after regression, smoke, and compatibility verification are judged sufficient
|
|
65
|
+
|
|
66
|
+
Approval authorities:
|
|
67
|
+
|
|
68
|
+
- `baseline_to_strategy`: `Tech Lead Agent`
|
|
69
|
+
- `strategy_to_upgrade`: `Fullstack Agent`
|
|
70
|
+
- `upgrade_to_verify`: `QA Agent`
|
|
71
|
+
- `migration_verified`: `QA Agent`
|
|
72
|
+
|
|
73
|
+
Transition rules:
|
|
74
|
+
|
|
75
|
+
- `migration_baseline -> migration_strategy` uses `baseline_to_strategy`
|
|
76
|
+
- `migration_strategy -> migration_upgrade` uses `strategy_to_upgrade`
|
|
77
|
+
- `migration_upgrade -> migration_verify` uses `upgrade_to_verify`
|
|
78
|
+
- `migration_verify -> migration_done` uses `migration_verified`
|
|
79
|
+
|
|
80
|
+
Readiness rule before migration approvals:
|
|
81
|
+
|
|
82
|
+
- current baseline and target upgrade intent are inspectable
|
|
83
|
+
- staged execution notes and rollback checkpoints are inspectable
|
|
84
|
+
- validation evidence uses real project commands or honest manual evidence
|
|
85
|
+
- requirement ambiguity is escalated to full delivery instead of being approved through migration
|
|
86
|
+
|
|
87
|
+
## Full Delivery Gates
|
|
88
|
+
|
|
89
|
+
Full mode keeps the explicit handoff chain:
|
|
90
|
+
|
|
91
|
+
- `pm_to_ba`
|
|
92
|
+
- `ba_to_architect`
|
|
93
|
+
- `architect_to_tech_lead`
|
|
94
|
+
- `tech_lead_to_fullstack`
|
|
95
|
+
- `fullstack_to_qa`
|
|
96
|
+
- `qa_to_done`
|
|
97
|
+
|
|
98
|
+
Approval authorities:
|
|
99
|
+
|
|
100
|
+
- `pm_to_ba`: `BA Agent`
|
|
101
|
+
- `ba_to_architect`: `Architect Agent`
|
|
102
|
+
- `architect_to_tech_lead`: `Tech Lead Agent`
|
|
103
|
+
- `tech_lead_to_fullstack`: `Fullstack Agent`
|
|
104
|
+
- `fullstack_to_qa`: `QA Agent`
|
|
105
|
+
- `qa_to_done`: `MasterOrchestrator`
|
|
106
|
+
|
|
107
|
+
Transition rules:
|
|
108
|
+
|
|
109
|
+
- `full_brief -> full_spec` uses `pm_to_ba`
|
|
110
|
+
- `full_spec -> full_architecture` uses `ba_to_architect`
|
|
111
|
+
- `full_architecture -> full_plan` uses `architect_to_tech_lead`
|
|
112
|
+
- `full_plan -> full_implementation` uses `tech_lead_to_fullstack`
|
|
113
|
+
- `full_implementation -> full_qa` uses `fullstack_to_qa`
|
|
114
|
+
- `full_qa -> full_done` uses `qa_to_done`
|
|
115
|
+
|
|
116
|
+
Readiness checklist for every full-delivery gate:
|
|
117
|
+
|
|
118
|
+
- the outgoing stage artifact or evidence exists and is inspectable
|
|
119
|
+
- unresolved assumptions, risks, and open questions are called out in notes
|
|
120
|
+
- the receiving role has enough detail to begin without reconstructing missing intent
|
|
121
|
+
- the approver records approval notes or rejection notes in workflow state
|
|
122
|
+
|
|
123
|
+
Boundary-specific handoff focus:
|
|
124
|
+
|
|
125
|
+
- `pm_to_ba`: problem statement, goals, constraints, and product unknowns are clear
|
|
126
|
+
- `ba_to_architect`: scope, behaviors, and acceptance expectations are clear
|
|
127
|
+
- `architect_to_tech_lead`: design decisions, boundaries, and dependencies are clear
|
|
128
|
+
- `tech_lead_to_fullstack`: execution steps, sequencing, and validation expectations are clear
|
|
129
|
+
- `fullstack_to_qa`: implementation evidence, changed surfaces, and known limitations are clear
|
|
130
|
+
- `qa_to_done`: verification outcome, remaining issue status, and closure recommendation are clear
|
|
131
|
+
|
|
132
|
+
## Operational Rule
|
|
133
|
+
|
|
134
|
+
Do not advance the active work item stage, and do not refresh `.opencode/workflow-state.json`, until the matching gate for the active mode is `approved`.
|
|
135
|
+
|
|
136
|
+
Do not mark a gate `approved` when the evidence is missing, not inspectable, or relies on unstated conversation context.
|
|
137
|
+
|
|
138
|
+
## Escalation Rule
|
|
139
|
+
|
|
140
|
+
When quick or migration work escalates to full delivery:
|
|
141
|
+
|
|
142
|
+
- do not try to reuse quick or migration gates as full-delivery approvals
|
|
143
|
+
- record the escalation metadata in state
|
|
144
|
+
- initialize the full-delivery approval chain with pending values
|
|
145
|
+
|
|
146
|
+
This escalation behavior remains unchanged in the current live contract.
|