owflow 0.1.10 → 0.3.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.
Files changed (82) hide show
  1. package/README.md +81 -28
  2. package/dist/agents/code-reviewer.md +1 -1
  3. package/dist/agents/production-readiness-checker.md +1 -1
  4. package/dist/agents/project-analyzer.md +0 -1
  5. package/dist/agents/task-classifier.md +3 -3
  6. package/dist/commands/agents-md-generator.md +36 -0
  7. package/dist/commands/dev-analyze.md +33 -0
  8. package/dist/commands/dev-bugfix.md +37 -0
  9. package/dist/commands/dev-finalize.md +33 -0
  10. package/dist/commands/dev-implement.md +34 -0
  11. package/dist/commands/dev-plan.md +37 -0
  12. package/dist/commands/dev-spec.md +37 -0
  13. package/dist/commands/dev-tdd-red.md +33 -0
  14. package/dist/commands/dev-verify.md +33 -0
  15. package/dist/commands/development.md +11 -12
  16. package/dist/commands/diagrams-mermaid.md +3 -4
  17. package/dist/commands/flow-init.md +3 -4
  18. package/dist/commands/goal-development.md +32 -0
  19. package/dist/commands/html-renderer.md +3 -4
  20. package/dist/commands/migration.md +3 -4
  21. package/dist/commands/performance.md +3 -4
  22. package/dist/commands/research.md +3 -4
  23. package/dist/commands/reviews-code.md +4 -4
  24. package/dist/commands/reviews-pragmatic.md +4 -4
  25. package/dist/commands/reviews-production-readiness.md +4 -4
  26. package/dist/commands/reviews-reality-check.md +4 -4
  27. package/dist/commands/reviews-spec-audit.md +4 -4
  28. package/dist/commands/rule-reviewer.md +38 -0
  29. package/dist/commands/standards-discover.md +3 -4
  30. package/dist/commands/standards-update.md +3 -4
  31. package/dist/commands/work.md +19 -19
  32. package/dist/configuration/agents-config.js +66 -0
  33. package/dist/configuration/commands-config.js +21 -0
  34. package/dist/configuration/skills-config.js +10 -0
  35. package/dist/constants.js +4 -0
  36. package/dist/hooks/before-tool.js +19 -0
  37. package/dist/hooks/session-compaction.js +19 -0
  38. package/dist/index.js +11 -142
  39. package/dist/skills/agents-md-generator/SKILL.md +223 -0
  40. package/dist/skills/codebase-analyzer/SKILL.md +1 -1
  41. package/dist/skills/dev-analyze/SKILL.md +115 -0
  42. package/dist/skills/dev-bugfix/SKILL.md +452 -0
  43. package/dist/skills/dev-finalize/SKILL.md +118 -0
  44. package/dist/skills/dev-implement/SKILL.md +167 -0
  45. package/dist/skills/dev-plan/SKILL.md +147 -0
  46. package/dist/skills/dev-spec/SKILL.md +182 -0
  47. package/dist/skills/dev-tdd-red/SKILL.md +94 -0
  48. package/dist/skills/dev-verify/SKILL.md +160 -0
  49. package/dist/skills/development/SKILL.md +130 -522
  50. package/dist/skills/diagrams-mermaid/SKILL.md +3 -1
  51. package/dist/skills/docs-manager/SKILL.md +4 -4
  52. package/dist/skills/docs-manager/references/agents-md-template.md +1 -1
  53. package/dist/skills/flow-init/SKILL.md +34 -13
  54. package/dist/skills/goal-development/SKILL.md +96 -0
  55. package/dist/skills/html-renderer/SKILL.md +14 -1
  56. package/dist/skills/implementation-plan-executor/SKILL.md +1 -1
  57. package/dist/skills/implementation-verifier/SKILL.md +1 -1
  58. package/dist/skills/migration/SKILL.md +63 -18
  59. package/dist/skills/orchestrator-framework/SKILL.md +1 -1
  60. package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -0
  61. package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -0
  62. package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -0
  63. package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +20 -0
  64. package/dist/skills/orchestrator-framework/references/gate-contract.md +104 -0
  65. package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +3 -0
  66. package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +8 -50
  67. package/dist/skills/performance/SKILL.md +52 -18
  68. package/dist/skills/research/SKILL.md +57 -24
  69. package/dist/skills/rule-reviewer/SKILL.md +334 -0
  70. package/dist/skills/standards-discover/SKILL.md +37 -14
  71. package/dist/skills/standards-update/SKILL.md +58 -10
  72. package/dist/templates/orchestrator-state-development.yml +14 -13
  73. package/dist/utils/file-util.js +25 -0
  74. package/package.json +6 -4
  75. package/dist/__tests__/verify_template.test.js +0 -102
  76. package/dist/commands/quick-bugfix.md +0 -37
  77. package/dist/commands/quick-dev.md +0 -182
  78. package/dist/commands/quick-plan.md +0 -167
  79. package/dist/skills/quick-bugfix/SKILL.md +0 -311
  80. package/dist/templates/quick-bugfix-task.yml +0 -10
  81. package/dist/templates/quick-dev-task.yml +0 -10
  82. package/dist/templates/quick-plan-task.yml +0 -11
@@ -1,102 +0,0 @@
1
- import { expect, test, describe, beforeAll, afterAll } from "bun:test";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { fileURLToPath } from "node:url";
5
- import { verify_template } from "../tools/verify_template.js";
6
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
- describe("verify_template tool", () => {
8
- const templatesDir = path.join(__dirname, "../templates");
9
- const testDir = path.join(__dirname, "test_tmp_dir");
10
- const testTemplateName = "test-template.yml";
11
- const testTemplatePath = path.join(templatesDir, testTemplateName);
12
- beforeAll(() => {
13
- // Ensure templates dir exists
14
- if (!fs.existsSync(templatesDir)) {
15
- fs.mkdirSync(templatesDir, { recursive: true });
16
- }
17
- // Create a dummy template
18
- fs.writeFileSync(testTemplatePath, `
19
- key1: value1
20
- key2:
21
- subKey1: subValue1
22
- `);
23
- // Ensure test dir exists
24
- if (!fs.existsSync(testDir)) {
25
- fs.mkdirSync(testDir, { recursive: true });
26
- }
27
- });
28
- afterAll(() => {
29
- // Cleanup
30
- if (fs.existsSync(testTemplatePath)) {
31
- fs.rmSync(testTemplatePath);
32
- }
33
- if (fs.existsSync(testDir)) {
34
- fs.rmSync(testDir, { recursive: true, force: true });
35
- }
36
- });
37
- test("should return error if file not found", async () => {
38
- const result = await verify_template.execute({ filePath: "nonexistent.yml", templateName: testTemplateName }, { directory: testDir });
39
- expect(result.output).toContain("File not found at nonexistent.yml");
40
- });
41
- test("should return error if template not found", async () => {
42
- const filePath = "target.yml";
43
- fs.writeFileSync(path.join(testDir, filePath), "key1: value");
44
- const result = await verify_template.execute({ filePath, templateName: "nonexistent-template.yml" }, { directory: testDir });
45
- expect(result.output).toContain("Template 'nonexistent-template.yml' not found");
46
- });
47
- test("should return error if target file has invalid YAML syntax", async () => {
48
- const filePath = "invalid.yml";
49
- fs.writeFileSync(path.join(testDir, filePath), "key1: : value\n invalid");
50
- const result = await verify_template.execute({ filePath, templateName: testTemplateName }, { directory: testDir });
51
- expect(result.output).toContain("YAML Syntax Error in invalid.yml");
52
- });
53
- test("should return error if target file is missing keys from template", async () => {
54
- const filePath = "missing-keys.yml";
55
- // Missing key2
56
- fs.writeFileSync(path.join(testDir, filePath), "key1: some-value");
57
- const result = await verify_template.execute({ filePath, templateName: testTemplateName }, { directory: testDir });
58
- expect(result.output).toContain("YAML Structure Validation Failed");
59
- expect(result.output).toContain("- Missing key: key2");
60
- });
61
- test("should pass if target file matches template structure", async () => {
62
- const filePath = "valid.yml";
63
- fs.writeFileSync(path.join(testDir, filePath), `
64
- key1: different_value
65
- key2:
66
- subKey1: different_sub_value
67
- extraKey: this is fine
68
- `);
69
- const result = await verify_template.execute({ filePath, templateName: testTemplateName }, { directory: testDir });
70
- expect(result.output).toBe("File exists and follows the correct YAML structure.");
71
- });
72
- test("should pass if template has null or non-object values and target has them too", async () => {
73
- const nullTemplateName = "null-template.yml";
74
- const nullTemplatePath = path.join(templatesDir, nullTemplateName);
75
- fs.writeFileSync(nullTemplatePath, "key: null\nother: 123");
76
- const filePath = "valid-null.yml";
77
- fs.writeFileSync(path.join(testDir, filePath), "key: something\nother: 456");
78
- const result = await verify_template.execute({ filePath, templateName: nullTemplateName }, { directory: testDir });
79
- expect(result.output).toBe("File exists and follows the correct YAML structure.");
80
- fs.rmSync(nullTemplatePath);
81
- });
82
- describe("real templates validation", () => {
83
- let templateFiles = [];
84
- try {
85
- const files = fs.readdirSync(templatesDir);
86
- templateFiles = files.filter(f => f.endsWith('.yml') || f.endsWith('.yaml') || f.endsWith('.md'));
87
- // Filter out our dummy test template
88
- templateFiles = templateFiles.filter(f => f !== "test-template.yml" && f !== "null-template.yml");
89
- }
90
- catch (e) {
91
- // templates dir might not exist or be readable in some contexts, though beforeAll ensures it exists
92
- }
93
- for (const templateName of templateFiles) {
94
- test(`should successfully validate a valid instance of ${templateName}`, async () => {
95
- // We use the templates directory as the working directory
96
- // and the template name as the filePath, effectively comparing the template to itself to ensure it's structurally valid.
97
- const result = await verify_template.execute({ filePath: templateName, templateName }, { directory: templatesDir });
98
- expect(result.output).toBe("File exists and follows the correct YAML structure.");
99
- });
100
- }
101
- });
102
- });
@@ -1,37 +0,0 @@
1
- ---
2
- name: quick-bugfix
3
- description: Quick bug fix with TDD red/green gates and complexity escalation
4
- argument-hint: "[bug description]"
5
- generated-from-skill: true
6
- ---
7
-
8
- CRITICAL INSTRUCTION: You MUST invoke the quick-bugfix skill immediately as your FIRST action.
9
-
10
- Use the Skill tool with these exact parameters:
11
- name: "quick-bugfix"
12
- prompt: "$ARGUMENTS"
13
-
14
- DO NOT:
15
-
16
- - Analyze the task before invoking the skill
17
- - Decide the task is "straightforward" and skip the skill
18
- - Substitute your own approach or workflow
19
- - Execute any part of the workflow yourself
20
-
21
- WHY: The user explicitly chose this workflow by using /quick-bugfix.
22
- Invoke the skill now and let it orchestrate the complete workflow.
23
-
24
- ---
25
-
26
- ## About This Workflow
27
-
28
- Quick bug fix with TDD red/green gates and complexity escalation
29
-
30
- The skill handles:
31
-
32
- - Task directory creation and state management
33
- - Phase execution with interactive gates
34
- - Subagent delegation for specialized work
35
- - Pause/resume capability
36
-
37
- See `skills/quick-bugfix/SKILL.md` for complete workflow documentation.
@@ -1,182 +0,0 @@
1
- ---
2
- name: quick-dev
3
- description: Implement task directly with AI SDLC standards awareness (no planning mode)
4
- ---
5
-
6
- # Quick Development with Standards Awareness
7
-
8
- Implement a task directly without entering planning mode, while still applying project standards from `.owflow/docs/`.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /quick-dev [task description]
14
- ```
15
-
16
- ## Examples
17
-
18
- ```bash
19
- /quick-dev "Add a logout button to the navbar"
20
- /quick-dev "Fix the typo in the error message"
21
- /quick-dev "Update the API endpoint to accept JSON"
22
- ```
23
-
24
- ---
25
-
26
- ## When to Use
27
-
28
- **Use `/quick-dev` when:**
29
-
30
- - Task is clear and well-defined
31
- - You know what needs to be done
32
- - No architectural decisions needed
33
- - Quick fixes, small features, or straightforward changes
34
-
35
- **Use `/quick-plan` instead when:**
36
-
37
- - Task scope is uncertain
38
- - Multiple implementation approaches possible
39
- - Architectural decisions required
40
- - You want user approval before coding
41
-
42
- ---
43
-
44
- ## Workflow
45
-
46
- ### Step 1: Parse Input
47
-
48
- **Get the task description:**
49
-
50
- - If provided as argument, use it directly
51
- - If not provided, use question to prompt:
52
- ```
53
- "What would you like to implement? Please describe the task."
54
- ```
55
-
56
- ### Step 1b: Create Task Directory
57
-
58
- **Create a lightweight task directory for artifact anchoring.**
59
-
60
- 1. Generate a task name from the task description:
61
- - Extract 3–5 key words, convert to lowercase kebab-case
62
- - Prepend today's date: `YYYY-MM-DD-kebab-name`
63
- - Examples: "Add a logout button to the navbar" → `2026-05-28-add-navbar-logout-button`, "Update the API endpoint to accept JSON" → `2026-05-28-update-api-accept-json`
64
- 2. Create directory: `.owflow/tasks/quick-dev/YYYY-MM-DD-task-name/`
65
- 3. Write `task.yml` with initial state using the template [src/templates/quick-dev-task.yml](../templates/quick-dev-task.yml).
66
- 4. **CRITICAL**: Use the `verify_template` tool immediately after creation to check YAML validity against `quick-dev-task.yml`.
67
-
68
- ### Step 2: Discover Standards
69
-
70
- **Check if `.owflow/docs/INDEX.md` exists:**
71
-
72
- **If exists:**
73
-
74
- 1. Read INDEX.md to discover available documentation and standards
75
- 2. Identify which standards are relevant based on:
76
- - The categories and files listed in INDEX.md
77
- - The nature of the task
78
- - Keywords in the task description
79
- 3. **READ the applicable standard files** (see Standards Reading Enforcement below)
80
- 4. **Update `task.yml`**: Add paths of standards read to `standards_applied` list
81
-
82
- **If not exists:**
83
-
84
- - Note that no standards are available
85
- - Suggest running `/flow-init` in completion message
86
-
87
- ### Standards Reading Enforcement (MANDATORY)
88
-
89
- **BLOCKING**: Reading INDEX.md alone is NOT sufficient. You MUST read actual standard files.
90
-
91
- **Enforcement Process**:
92
-
93
- 1. Read INDEX.md to discover available standards
94
- 2. Identify which standards apply based on task description
95
- 3. **READ each applicable standard file** using Read tool (not just note it exists)
96
- 4. Apply standards during implementation
97
- 5. List applied standards in completion summary
98
-
99
- **Examples of standard discovery**:
100
-
101
- - Task mentions "upload" → Read file-handling standards
102
- - Task mentions "form" → Read validation and accessibility standards
103
- - Task mentions "API" → Read api and error-handling standards
104
-
105
- ### Step 3: Implement with Standards
106
-
107
- **MANDATORY**: During implementation:
108
-
109
- 1. Explore the codebase to understand context (using Glob, Grep, Read)
110
- 2. **Apply discovered standards** - Reference the standard files you read
111
- 3. For each code change, verify it follows applicable standards
112
- 4. If you encounter new areas while coding (e.g., auth, database), read applicable standards before proceeding
113
- 5. Make the necessary code changes
114
- 6. Run relevant tests if applicable
115
-
116
- ### Step 4: Verify Standards Compliance
117
-
118
- **After implementation, verify:**
119
-
120
- 1. Review changes against applicable standards
121
- 2. Confirm key guidelines were followed
122
- 3. Note any standards that were applied
123
-
124
- ### Step 5: Summary
125
-
126
- **Write `summary.md`** in the task directory:
127
-
128
- ```markdown
129
- # Task Summary
130
-
131
- **Command**: quick-dev
132
- **Date**: YYYY-MM-DD
133
- **Status**: completed
134
-
135
- ## What Was Done
136
- [What was implemented]
137
-
138
- ## Files Modified
139
- - `path/to/file`
140
-
141
- ## Standards Applied
142
- - [standard]: [guideline]
143
-
144
- ## Tests
145
- - [test file] — [result]
146
-
147
- ## Commit Suggestion
148
- [conventional commit message]
149
- ```
150
-
151
- **Update `task.yml`**: set `status: completed`, `updated: [now]`.
152
-
153
- **Provide completion summary to user:**
154
-
155
- - What was implemented
156
- - Which standards from INDEX.md were applied
157
- - Any tests run and their results
158
- - Suggestions for follow-up (if any)
159
-
160
- ---
161
-
162
- ## What This Does
163
-
164
- 1. **Parses** task description from user input
165
- 2. **Creates** lightweight task directory with `task.yml` for artifact anchoring
166
- 3. **Discovers** applicable standards from `.owflow/docs/INDEX.md`
167
- 4. **READS** actual standard files (MANDATORY - not just INDEX.md)
168
- 5. **Implements** directly without planning mode approval
169
- 6. **Verifies** standards were followed
170
- 7. **Writes** `summary.md` in task directory and updates `task.yml` to `completed`
171
- 8. **Summarizes** what was done and which standards were read and applied
172
-
173
- ## Graceful Fallback
174
-
175
- **If `.owflow/docs/` does not exist:**
176
-
177
- Proceed with implementation normally, then note:
178
-
179
- ```
180
- "No AI SDLC standards found. Consider running `/flow-init` to initialize
181
- project documentation and coding standards for better consistency."
182
- ```
@@ -1,167 +0,0 @@
1
- ---
2
- name: quick-plan
3
- description: Enter planning mode with AI SDLC standards awareness
4
- ---
5
-
6
- # Planning Mode with Standards Awareness
7
-
8
- Enter OpenCode's planning mode for a task, with automatic discovery of project standards from `.owflow/docs/`.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /quick-plan [task description]
14
- ```
15
-
16
- ## Examples
17
-
18
- ```bash
19
- /quick-plan "Add user authentication with email/password"
20
- /quick-plan "Refactor the payment processing module"
21
- /quick-plan
22
- ```
23
-
24
- ---
25
-
26
- ## Workflow
27
-
28
- ### Step 1: Parse Input
29
-
30
- **Get the task description:**
31
-
32
- - If provided as argument, use it directly
33
- - If not provided, use question to prompt:
34
- ```
35
- "What would you like to plan? Please describe the task or feature."
36
- ```
37
-
38
- ### Step 1b: Create Task Directory
39
-
40
- **Create a lightweight task directory for artifact anchoring.**
41
-
42
- 1. Generate a task name from the task description:
43
- - Extract 3–5 key words, convert to lowercase kebab-case
44
- - Prepend today's date: `YYYY-MM-DD-kebab-name`
45
- - Examples: "Add retry logic to API client" → `2026-05-28-add-api-retry-logic`, "Refactor the payment processing module" → `2026-05-28-refactor-payment-module`
46
- 2. Create directory: `.owflow/tasks/quick-plan/YYYY-MM-DD-task-name/`
47
- 3. Create `analysis/` subdirectory inside it
48
- 4. Write `task.yml` with initial state using the template [src/templates/quick-plan-task.yml](../templates/quick-plan-task.yml).
49
- 5. **CRITICAL**: Use the `verify_template` tool immediately after creation to check YAML validity against `quick-plan-task.yml`.
50
-
51
- ### Step 2: Discover and Read Standards (BEFORE Plan Mode)
52
-
53
- **CRITICAL: This step MUST complete before calling Plan Agent.**
54
-
55
- 1. **Check if `.owflow/docs/INDEX.md` exists**
56
- - **If not exists**: Note that no standards are available, skip to Step 3
57
- - **If exists**: Continue with discovery below
58
-
59
- 2. **Read INDEX.md** to understand available standards and documentation
60
-
61
- 3. **Identify applicable standards** based on:
62
- - The categories and files listed in INDEX.md
63
- - The nature of the task being planned
64
- - Keywords and patterns in the task description (e.g., "API" → api standards, "form" → validation standards, "upload" → file-handling standards)
65
-
66
- 4. **READ the actual standard files** using the Read tool — reading INDEX.md alone is NOT sufficient
67
-
68
- 5. **Summarize key guidelines** from each standard file read — these will carry into plan mode as context
69
- 6. **Update `task.yml`**: Add paths of standards read to `standards_applied` list
70
-
71
- ### Step 2b: Write Findings
72
-
73
- **After standards discovery, write `analysis/findings.md`** in the task directory:
74
-
75
- ```markdown
76
- # Task Analysis
77
-
78
- ## Context
79
- [What was analyzed to inform the plan — codebase areas explored, existing patterns found]
80
-
81
- ## Key Decisions
82
- [Architectural or implementation decisions made during planning]
83
-
84
- ## Standards Referenced
85
- - [standard file]: [key guideline applied]
86
- ```
87
-
88
- ### Step 3: Enter Planning Mode
89
-
90
- **Use the `Plan agent` to trigger OpenCode's builtin planning mode.**
91
-
92
- **Standards context from Step 2 MUST actively inform all plan mode phases:**
93
-
94
- - **Phase 1 (Explore)**: When launching Explore agents, include in the prompt: "The following project standards apply to this task: [list standard files and key guidelines from Step 2]. Verify how the existing codebase follows these standards."
95
- - **Phase 2 (Plan)**: When launching Plan agents, include in the prompt: "Apply these project standards in your implementation plan: [list standard files and key guidelines from Step 2]. Each implementation step must conform to these standards."
96
- - **Phase 4 (Final Plan)**: The plan file must incorporate standards into the implementation steps themselves, not just list them in a separate section.
97
-
98
- The planning mode will:
99
-
100
- 1. Launch Explore agents to understand the codebase (with standards context)
101
- 2. Launch Plan agents to design implementation approach (with standards constraints)
102
- 3. Review and verify alignment with user intent
103
- 4. Write final plan to plan file (with standards woven into steps)
104
- 5. Ask for user approval (gated on mandatory standards sections)
105
-
106
- ### Approval question gate: Mandatory Standards Sections
107
-
108
- **BLOCKING: Do NOT call ask user for approval until the plan file contains these sections:**
109
-
110
- 1. **"## Applicable Standards"** — list each standard file that was read, with key guidelines extracted from each. If no standards exist, state: "No AI SDLC standards found. Consider running `/flow-init`."
111
-
112
- 2. **"## Standards Compliance Checklist"** — checkboxes for each applicable standard guideline that implementation must follow. Example:
113
- ```markdown
114
- - [ ] API endpoints follow REST naming conventions (from `standards/backend/api.md`)
115
- - [ ] Error responses use standard error format (from `standards/backend/api.md`)
116
- - [ ] New components use TypeScript strict mode (from `standards/frontend/components.md`)
117
- ```
118
-
119
- If these sections are missing from the plan file, add them before asking user for approval.
120
-
121
- ### Graceful Fallback
122
-
123
- **If `.owflow/docs/` does not exist:**
124
-
125
- Continue with planning mode normally. The "Applicable Standards" section in the plan should note:
126
-
127
- ```
128
- No AI SDLC standards found. Consider running `/flow-init` to initialize
129
- project documentation and coding standards for better consistency.
130
- ```
131
-
132
- ## What This Does
133
-
134
- 1. **Parses** task description from user input
135
- 2. **Creates** lightweight task directory with `task.yml` for artifact anchoring
136
- 3. **Discovers and READS** applicable standard files from `.owflow/docs/` (BEFORE plan mode)
137
- 4. **Writes** `analysis/findings.md` with task context and key decisions
138
- 5. **Enters** OpenCode's builtin planning mode via delegating to `Plan Agent` with standards already loaded
139
- 6. **Produces** a plan file with implementation approach, applicable standards, and compliance checklist
140
- 7. **Gates** Approval question on mandatory standards sections in the plan file
141
- 8. **Updates** `task.yml` with `status: completed` and `plan_path` after plan approval
142
-
143
- ## Benefits Over Manual Planning
144
-
145
- - Automatic standards discovery and integration
146
- - Standards read BEFORE planning begins (not as an afterthought)
147
- - Plan file for review before implementation
148
- - Standards compliance checklist built into the plan
149
-
150
- ## After Planning
151
-
152
- Once the plan is approved:
153
-
154
- - **Update `task.yml`**: set `status: completed`, `plan_path: [path to plan file]`, `updated: [now]`
155
- - Implementation begins based on the plan
156
- - Standards are applied during coding
157
-
158
- ## Post-Implementation Verification
159
-
160
- After implementation is complete, verify standards compliance using the checklist from the plan:
161
-
162
- 1. **Review the "Standards Compliance Checklist"** in the plan file
163
- 2. **For each checklist item**: verify implementation follows the guideline
164
- 3. **Document verification results** (pass/fail for each item)
165
- 4. **Address any violations** before marking task complete
166
-
167
- This ensures the discovered standards are actually enforced, not just documented.