@guanlin4924/devflow-pi 0.1.21 → 0.1.23
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/README.md +29 -21
- package/package.json +1 -2
- package/plugins/devflow-core/extensions/devflow-core.ts +1 -3
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/init_workflow.rb +1 -1
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/validate_state.rb +9 -10
- package/plugins/devflow-core/skills/workflow-orchestrator/templates/acceptance-remediation.yaml +87 -0
- package/plugins/devflow-core/skills/workflow-orchestrator/templates/feature-development.yaml +29 -98
- package/plugins/devflow-core/skills/workflow-pipeline/SKILL.md +3 -5
- package/plugins/devflow-core/skills/workflow-pipeline/references/pipeline-flow.md +9 -22
- package/plugins/devflow-core/skills/workflow-pipeline/references/slice-safety-guide.md +1 -1
- package/plugins/devflow-implementation/skills/workflow-change-plan/references/output-template.md +2 -2
- package/plugins/devflow-implementation/skills/workflow-execute-phase/references/execute-phase.md +52 -1221
- package/plugins/devflow-intel/skills/workflow-context-sync/SKILL.md +1 -1
- package/plugins/devflow-intel/skills/workflow-update-navigation/SKILL.md +1 -1
- package/plugins/devflow-quality/agents/verification-runner.md +1 -1
- package/plugins/devflow-quality/skills/workflow-generate-mainflow-cases/SKILL.md +2 -2
- package/plugins/devflow-quality/skills/workflow-release-closeout/SKILL.md +48 -0
- package/plugins/devflow-quality/skills/workflow-run-acceptance-tests/SKILL.md +2 -2
- package/src/constants.ts +1 -1
- package/templates/commands/start.md +2 -2
- package/templates/omp/config.yml +1 -3
- package/docs/OMP-NATIVE-ARCHITECTURE.md +0 -104
- package/plugins/devflow-core/skills/workflow-orchestrator/templates/uat-remediation.yaml +0 -176
- package/plugins/devflow-quality/skills/workflow-audit-milestone/SKILL.md +0 -31
- package/plugins/devflow-quality/skills/workflow-audit-milestone/references/audit-milestone.md +0 -328
- package/plugins/devflow-quality/skills/workflow-complete-milestone/SKILL.md +0 -132
- package/plugins/devflow-quality/skills/workflow-complete-milestone/assets/milestone-archive.md +0 -123
- package/plugins/devflow-quality/skills/workflow-complete-milestone/references/complete-milestone.md +0 -775
- package/plugins/devflow-quality/skills/workflow-complete-milestone/references/milestone-archive.md +0 -123
- package/plugins/devflow-quality/skills/workflow-verify-work/SKILL.md +0 -112
- package/plugins/devflow-quality/skills/workflow-verify-work/assets/UAT.md +0 -265
- package/plugins/devflow-quality/skills/workflow-verify-work/references/verify-work.md +0 -759
package/plugins/devflow-quality/skills/workflow-complete-milestone/references/milestone-archive.md
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
# Milestone Archive Template
|
|
2
|
-
|
|
3
|
-
This template is used by the complete-milestone workflow to create archive files in `.planning/milestones/`.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## File Template
|
|
8
|
-
|
|
9
|
-
# Milestone v{{VERSION}}: {{MILESTONE_NAME}}
|
|
10
|
-
|
|
11
|
-
**Status:** ✅ SHIPPED {{DATE}}
|
|
12
|
-
**Phases:** {{PHASE_START}}-{{PHASE_END}}
|
|
13
|
-
**Total Plans:** {{TOTAL_PLANS}}
|
|
14
|
-
|
|
15
|
-
## Overview
|
|
16
|
-
|
|
17
|
-
{{MILESTONE_DESCRIPTION}}
|
|
18
|
-
|
|
19
|
-
## Phases
|
|
20
|
-
|
|
21
|
-
{{PHASES_SECTION}}
|
|
22
|
-
|
|
23
|
-
[For each phase in this milestone, include:]
|
|
24
|
-
|
|
25
|
-
### Phase {{PHASE_NUM}}: {{PHASE_NAME}}
|
|
26
|
-
|
|
27
|
-
**Goal**: {{PHASE_GOAL}}
|
|
28
|
-
**Depends on**: {{DEPENDS_ON}}
|
|
29
|
-
**Plans**: {{PLAN_COUNT}} plans
|
|
30
|
-
|
|
31
|
-
Plans:
|
|
32
|
-
|
|
33
|
-
- [x] {{PHASE}}-01: {{PLAN_DESCRIPTION}}
|
|
34
|
-
- [x] {{PHASE}}-02: {{PLAN_DESCRIPTION}}
|
|
35
|
-
[... all plans ...]
|
|
36
|
-
|
|
37
|
-
**Details:**
|
|
38
|
-
{{PHASE_DETAILS_FROM_ROADMAP}}
|
|
39
|
-
|
|
40
|
-
**For decimal phases, include (INSERTED) marker:**
|
|
41
|
-
|
|
42
|
-
### Phase 2.1: Critical Security Patch (INSERTED)
|
|
43
|
-
|
|
44
|
-
**Goal**: Fix authentication bypass vulnerability
|
|
45
|
-
**Depends on**: Phase 2
|
|
46
|
-
**Plans**: 1 plan
|
|
47
|
-
|
|
48
|
-
Plans:
|
|
49
|
-
|
|
50
|
-
- [x] 02.1-01: Patch auth vulnerability
|
|
51
|
-
|
|
52
|
-
**Details:**
|
|
53
|
-
{{PHASE_DETAILS_FROM_ROADMAP}}
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Milestone Summary
|
|
58
|
-
|
|
59
|
-
**Decimal Phases:**
|
|
60
|
-
|
|
61
|
-
- Phase 2.1: Critical Security Patch (inserted after Phase 2 for urgent fix)
|
|
62
|
-
- Phase 5.1: Performance Hotfix (inserted after Phase 5 for production issue)
|
|
63
|
-
|
|
64
|
-
**Key Decisions:**
|
|
65
|
-
{{DECISIONS_FROM_PROJECT_STATE}}
|
|
66
|
-
[Example:]
|
|
67
|
-
|
|
68
|
-
- Decision: Use ROADMAP.md split (Rationale: Constant context cost)
|
|
69
|
-
- Decision: Decimal phase numbering (Rationale: Clear insertion semantics)
|
|
70
|
-
|
|
71
|
-
**Issues Resolved:**
|
|
72
|
-
{{ISSUES_RESOLVED_DURING_MILESTONE}}
|
|
73
|
-
[Example:]
|
|
74
|
-
|
|
75
|
-
- Fixed context overflow at 100+ phases
|
|
76
|
-
- Resolved phase insertion confusion
|
|
77
|
-
|
|
78
|
-
**Issues Deferred:**
|
|
79
|
-
{{ISSUES_DEFERRED_TO_LATER}}
|
|
80
|
-
[Example:]
|
|
81
|
-
|
|
82
|
-
- PROJECT-STATE.md tiering (deferred until decisions > 300)
|
|
83
|
-
|
|
84
|
-
**Technical Debt Incurred:**
|
|
85
|
-
{{SHORTCUTS_NEEDING_FUTURE_WORK}}
|
|
86
|
-
[Example:]
|
|
87
|
-
|
|
88
|
-
- Some workflows still have hardcoded paths (fix in Phase 5)
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
_For current project status, see .planning/ROADMAP.md_
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## Usage Guidelines
|
|
97
|
-
|
|
98
|
-
<guidelines>
|
|
99
|
-
**When to create milestone archives:**
|
|
100
|
-
- After completing all phases in a milestone (v1.0, v1.1, v2.0, etc.)
|
|
101
|
-
- Triggered by complete-milestone workflow
|
|
102
|
-
- Before planning next milestone work
|
|
103
|
-
|
|
104
|
-
**How to fill template:**
|
|
105
|
-
|
|
106
|
-
- Replace {{PLACEHOLDERS}} with actual values
|
|
107
|
-
- Extract phase details from ROADMAP.md
|
|
108
|
-
- Document decimal phases with (INSERTED) marker
|
|
109
|
-
- Include key decisions from PROJECT-STATE.md or SUMMARY files
|
|
110
|
-
- List issues resolved vs deferred
|
|
111
|
-
- Capture technical debt for future reference
|
|
112
|
-
|
|
113
|
-
**Archive location:**
|
|
114
|
-
|
|
115
|
-
- Save to `.planning/milestones/v{VERSION}-{NAME}.md`
|
|
116
|
-
- Example: `.planning/milestones/v1.0-mvp.md`
|
|
117
|
-
|
|
118
|
-
**After archiving:**
|
|
119
|
-
|
|
120
|
-
- Update ROADMAP.md to collapse completed milestone in `<details>` tag
|
|
121
|
-
- Update PROJECT.md to brownfield format with Current State section
|
|
122
|
-
- Continue phase numbering in next milestone (never restart at 01)
|
|
123
|
-
</guidelines>
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: workflow-verify-work
|
|
3
|
-
description: "Use when implemented features need UAT, verification evidence, user-facing behavior checks, or failure routing before milestone audit."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<objective>
|
|
7
|
-
Validate built features through conversational testing with persistent state.
|
|
8
|
-
|
|
9
|
-
Purpose: Confirm what the agent built actually works from the user's perspective. One test at a time, plain text responses, no interrogation. When issues are found, automatically diagnose, plan fixes, and prepare for execution.
|
|
10
|
-
|
|
11
|
-
Output:
|
|
12
|
-
- `{phase_num}-UAT.md` — raw test log (items, results, user responses)
|
|
13
|
-
- `{phase_num}-VERIFICATION.md` — formal verification report mapping REQ-IDs / FP-IDs to passed UAT items, with evidence summary and closure statement. Must be generated when all UAT items pass (no failures, no skips that block closure). If VERIFICATION.md already exists from execute-phase, merge UAT results into it rather than creating a duplicate.
|
|
14
|
-
- `.planning/phases/{phase}/01-VERIFICATION.meta.json` — structured metadata (`uat_passed`, `uat_failed`, `uat_skipped`, `gate_passed`, `gate_total`, `known_issues`). Schema in `feature-development.yaml` under `steps[verify].meta_output.fields`.
|
|
15
|
-
</objective>
|
|
16
|
-
|
|
17
|
-
<execution_context>
|
|
18
|
-
references/verify-work.md
|
|
19
|
-
assets/UAT.md
|
|
20
|
-
</execution_context>
|
|
21
|
-
|
|
22
|
-
<context>
|
|
23
|
-
Phase: $ARGUMENTS (optional)
|
|
24
|
-
- If provided: Test specific phase (e.g., "4")
|
|
25
|
-
- If not provided: Check for active sessions or prompt for phase
|
|
26
|
-
|
|
27
|
-
**Project rule package:**
|
|
28
|
-
During verification, discover and read applicable rule sources:
|
|
29
|
-
- `.planning/rules/INDEX.md`
|
|
30
|
-
- `.planning/execution-contract.md`
|
|
31
|
-
- `.planning/toolchain.md`
|
|
32
|
-
- `.planning/lessons/README.md`
|
|
33
|
-
- `.planning/milestones/`
|
|
34
|
-
- `.planning/requirements/`
|
|
35
|
-
- `.planning/code-index/`
|
|
36
|
-
- `.context/spec/`
|
|
37
|
-
- `.context/workflow/verification.md`
|
|
38
|
-
- `.context/workflow/checklist.md`
|
|
39
|
-
- `.context/lessons/README.md`(如存在)
|
|
40
|
-
- root `AGENTS.md`, `CLAUDE.md`, or equivalent project instruction files
|
|
41
|
-
|
|
42
|
-
Context files are resolved inside the workflow (`init verify-work`) and delegated via `<files_to_read>` blocks.
|
|
43
|
-
Use `.planning/milestones/`, `.planning/requirements/`, `.planning/lessons/`, and phase `CONTEXT.md` as primary history when verification needs prior decisions. Treat `features/` or `.context/lessons/` as optional legacy/project-rule sources only when present.
|
|
44
|
-
</context>
|
|
45
|
-
|
|
46
|
-
<verification_gates>
|
|
47
|
-
Verification must include these gates when project artifacts exist:
|
|
48
|
-
|
|
49
|
-
1. **Change-list consistency gate**
|
|
50
|
-
- Locate the relevant `.planning/features/**/*变更清单.md` or phase plan. If missing, check legacy `features/**/*变更清单.md`.
|
|
51
|
-
- Check expected changes against implementation.
|
|
52
|
-
- If `.planning/code-index/` exists, use it to verify changed files, symbols, callers/callees, imports, and resource reads/writes before source readback.
|
|
53
|
-
- Report missing implementation, extra implementation, and deviations before functional UAT conclusions.
|
|
54
|
-
|
|
55
|
-
2. **Project rule review gate**
|
|
56
|
-
- Review changed files against applicable project rules, task-level rules, and lessons.
|
|
57
|
-
- Existing code style may inform local patterns but must not override explicit project rules.
|
|
58
|
-
- Review the whole changed file or component boundary, not only the diff, when the project rules apply at file or layer level.
|
|
59
|
-
- Check both omissions and extras: missing required pieces, extra unplanned code, unused imports/fields/methods, stale generated artifacts, and duplicated implementations.
|
|
60
|
-
- If issues exist, produce a fix list and route back to execution.
|
|
61
|
-
|
|
62
|
-
3. **Mainflow automation gate**
|
|
63
|
-
- Read `.planning/phases/{phase}/MAINFLOW-CASES.md`, `.planning/generated-cases/{feature}/validation-report.md`, and `.planning/generated-cases/{feature}/case-import-payloads.json` when they exist.
|
|
64
|
-
- If generated DSL validation failed, UAT does not pass.
|
|
65
|
-
- If mainflow case execution failed after import or direct execution, UAT does not pass.
|
|
66
|
-
- If environment or platform dependencies are missing and execution cannot run, mark verification `blocked`, not passed.
|
|
67
|
-
- If cases were not imported into the platform, complete at least static validation and record that import/execution remains pending.
|
|
68
|
-
- If cases were imported into the platform, record `execution_id` and execution result for each imported mainflow case.
|
|
69
|
-
- Mainflow cases must be limited to `api-mainflow` and `ui-mainflow`; any non-mainflow tag is a gate failure.
|
|
70
|
-
|
|
71
|
-
4. **Toolchain and test gate**
|
|
72
|
-
- Run or require the commands declared by `.planning/toolchain.md`, `.planning/execution-contract.md`, `.context/workflow/verification.md`, or the change list.
|
|
73
|
-
- Include target tests, full tests, build, codegen/mock/DI checks, migration checks, and integration tests when applicable.
|
|
74
|
-
|
|
75
|
-
5. **冻结验收测试门禁**
|
|
76
|
-
- 读取 `.planning/requirements/{feature}/tests.json`、`.planning/features/{feature}/acceptance-test-bindings.json` 和 `.planning/test-runs/{feature}/acceptance-results.json`。
|
|
77
|
-
- 调用 `devflow_run_acceptance_tests(action="validate_results", feature=...)`;它验证结果仍引用当前冻结 suite,且每个 `TC-*` 都已通过。
|
|
78
|
-
- 任一 TC 未执行、失败、人工待执行或因环境阻塞时,验证状态只能是 `blocked` 或 `failed`,CP-4 不得宣称验收通过。
|
|
79
|
-
- Markdown、UAT 口述或 agent 自述不能替代该 Core-owned 结果。
|
|
80
|
-
|
|
81
|
-
6. **Compatibility gate**
|
|
82
|
-
- Check interface, database, config, data migration, permission, and consumer compatibility risks.
|
|
83
|
-
- For frontend-visible API/VO/schema changes, record backward compatibility or migration handling.
|
|
84
|
-
- For database/model/config changes, record migration, rollback, and deployment ordering risk.
|
|
85
|
-
- Record accepted residual risks explicitly.
|
|
86
|
-
|
|
87
|
-
7. **Baseline decision gate**
|
|
88
|
-
- Compare implementation against `.planning/requirements/baseline.md`, especially `反向审视与用户拍板`, `待确认事项`, and `下游输入契约`.
|
|
89
|
-
- Confirm implemented behavior maps to `FP-*`, `BR-*`, `BC-*`, and confirmed `CR-*` decisions.
|
|
90
|
-
- Any implemented scope based on a pending decision is a verification failure unless the user explicitly approved it.
|
|
91
|
-
|
|
92
|
-
8. **Lessons extraction gate**
|
|
93
|
-
- After verification is complete, review the findings for lessons worth preserving.
|
|
94
|
-
- Candidate triggers for a lesson:
|
|
95
|
-
- A regression was caught early — what pattern prevented it?
|
|
96
|
-
- A non-obvious interaction between modules was discovered
|
|
97
|
-
- A test gap was identified that exists beyond this feature
|
|
98
|
-
- A design decision was made that future tasks must reference
|
|
99
|
-
- If a lesson candidate exists, write to `.context/lessons/YYYY-MM-DD-{slug}.md`.
|
|
100
|
-
- If no candidate, skip.
|
|
101
|
-
- This gate covers both positive patterns (successful approach worth repeating) and negative patterns (regression prevention).
|
|
102
|
-
|
|
103
|
-
The feature is complete only when UAT, mainflow automation, baseline decision, consistency, project rule review, compatibility, and required toolchain/test gates pass or have explicit user-approved exceptions.
|
|
104
|
-
|
|
105
|
-
When all gates pass: write `VERIFICATION.md` before exiting. This is non-negotiable — downstream `workflow-audit-milestone` requires it.
|
|
106
|
-
</verification_gates>
|
|
107
|
-
|
|
108
|
-
<process>
|
|
109
|
-
Execute the verify-work workflow from references/verify-work.md end-to-end.
|
|
110
|
-
Preserve all workflow gates (session management, test presentation, diagnosis, fix planning, routing).
|
|
111
|
-
Additionally preserve the verification gates above before declaring the work complete.
|
|
112
|
-
</process>
|
|
@@ -1,265 +0,0 @@
|
|
|
1
|
-
# UAT Template
|
|
2
|
-
|
|
3
|
-
Template for `.planning/phases/XX-name/{phase_num}-UAT.md` — persistent UAT session tracking.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## File Template
|
|
8
|
-
|
|
9
|
-
```markdown
|
|
10
|
-
---
|
|
11
|
-
status: testing | partial | complete | diagnosed
|
|
12
|
-
phase: XX-name
|
|
13
|
-
source: [list of SUMMARY.md files tested]
|
|
14
|
-
started: [ISO timestamp]
|
|
15
|
-
updated: [ISO timestamp]
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Current Test
|
|
19
|
-
<!-- OVERWRITE each test - shows where we are -->
|
|
20
|
-
|
|
21
|
-
number: [N]
|
|
22
|
-
name: [test name]
|
|
23
|
-
expected: |
|
|
24
|
-
[what user should observe]
|
|
25
|
-
awaiting: user response
|
|
26
|
-
|
|
27
|
-
## Tests
|
|
28
|
-
|
|
29
|
-
### 1. [Test Name]
|
|
30
|
-
expected: [observable behavior - what user should see]
|
|
31
|
-
result: [pending]
|
|
32
|
-
|
|
33
|
-
### 2. [Test Name]
|
|
34
|
-
expected: [observable behavior]
|
|
35
|
-
result: pass
|
|
36
|
-
|
|
37
|
-
### 3. [Test Name]
|
|
38
|
-
expected: [observable behavior]
|
|
39
|
-
result: issue
|
|
40
|
-
reported: "[verbatim user response]"
|
|
41
|
-
severity: major
|
|
42
|
-
|
|
43
|
-
### 4. [Test Name]
|
|
44
|
-
expected: [observable behavior]
|
|
45
|
-
result: skipped
|
|
46
|
-
reason: [why skipped]
|
|
47
|
-
|
|
48
|
-
### 5. [Test Name]
|
|
49
|
-
expected: [observable behavior]
|
|
50
|
-
result: blocked
|
|
51
|
-
blocked_by: server | physical-device | release-build | third-party | prior-phase
|
|
52
|
-
reason: [why blocked]
|
|
53
|
-
|
|
54
|
-
...
|
|
55
|
-
|
|
56
|
-
## Summary
|
|
57
|
-
|
|
58
|
-
total: [N]
|
|
59
|
-
passed: [N]
|
|
60
|
-
issues: [N]
|
|
61
|
-
pending: [N]
|
|
62
|
-
skipped: [N]
|
|
63
|
-
blocked: [N]
|
|
64
|
-
|
|
65
|
-
## Gaps
|
|
66
|
-
|
|
67
|
-
<!-- YAML format for plan-phase --gaps consumption -->
|
|
68
|
-
- truth: "[expected behavior from test]"
|
|
69
|
-
status: failed
|
|
70
|
-
reason: "User reported: [verbatim response]"
|
|
71
|
-
severity: blocker | major | minor | cosmetic
|
|
72
|
-
test: [N]
|
|
73
|
-
root_cause: "" # Filled by diagnosis
|
|
74
|
-
artifacts: [] # Filled by diagnosis
|
|
75
|
-
missing: [] # Filled by diagnosis
|
|
76
|
-
debug_session: "" # Filled by diagnosis
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
<section_rules>
|
|
82
|
-
|
|
83
|
-
**Frontmatter:**
|
|
84
|
-
- `status`: OVERWRITE - "testing", "partial", or "complete"
|
|
85
|
-
- `phase`: IMMUTABLE - set on creation
|
|
86
|
-
- `source`: IMMUTABLE - SUMMARY files being tested
|
|
87
|
-
- `started`: IMMUTABLE - set on creation
|
|
88
|
-
- `updated`: OVERWRITE - update on every change
|
|
89
|
-
|
|
90
|
-
**Current Test:**
|
|
91
|
-
- OVERWRITE entirely on each test transition
|
|
92
|
-
- Shows which test is active and what's awaited
|
|
93
|
-
- On completion: "[testing complete]"
|
|
94
|
-
|
|
95
|
-
**Tests:**
|
|
96
|
-
- Each test: OVERWRITE result field when user responds
|
|
97
|
-
- `result` values: [pending], pass, issue, skipped, blocked
|
|
98
|
-
- If issue: add `reported` (verbatim) and `severity` (inferred)
|
|
99
|
-
- If skipped: add `reason` if provided
|
|
100
|
-
- If blocked: add `blocked_by` (tag) and `reason` (if provided)
|
|
101
|
-
|
|
102
|
-
**Summary:**
|
|
103
|
-
- OVERWRITE counts after each response
|
|
104
|
-
- Tracks: total, passed, issues, pending, skipped
|
|
105
|
-
|
|
106
|
-
**Gaps:**
|
|
107
|
-
- APPEND only when issue found (YAML format)
|
|
108
|
-
- After diagnosis: fill `root_cause`, `artifacts`, `missing`, `debug_session`
|
|
109
|
-
- This section feeds directly into /workflow-pipeline --gaps
|
|
110
|
-
|
|
111
|
-
</section_rules>
|
|
112
|
-
|
|
113
|
-
<diagnosis_lifecycle>
|
|
114
|
-
|
|
115
|
-
**After testing complete (status: complete), if gaps exist:**
|
|
116
|
-
|
|
117
|
-
1. User runs diagnosis (from verify-work offer or manually)
|
|
118
|
-
2. diagnose-issues workflow spawns parallel debug agents
|
|
119
|
-
3. Each agent investigates one gap, returns root cause
|
|
120
|
-
4. UAT.md Gaps section updated with diagnosis:
|
|
121
|
-
- Each gap gets `root_cause`, `artifacts`, `missing`, `debug_session` filled
|
|
122
|
-
5. status → "diagnosed"
|
|
123
|
-
6. Ready for /workflow-pipeline --gaps with root causes
|
|
124
|
-
|
|
125
|
-
**After diagnosis:**
|
|
126
|
-
```yaml
|
|
127
|
-
## Gaps
|
|
128
|
-
|
|
129
|
-
- truth: "Comment appears immediately after submission"
|
|
130
|
-
status: failed
|
|
131
|
-
reason: "User reported: works but doesn't show until I refresh the page"
|
|
132
|
-
severity: major
|
|
133
|
-
test: 2
|
|
134
|
-
root_cause: "useEffect in CommentList.tsx missing commentCount dependency"
|
|
135
|
-
artifacts:
|
|
136
|
-
- path: "src/components/CommentList.tsx"
|
|
137
|
-
issue: "useEffect missing dependency"
|
|
138
|
-
missing:
|
|
139
|
-
- "Add commentCount to useEffect dependency array"
|
|
140
|
-
debug_session: ".planning/debug/comment-not-refreshing.md"
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
</diagnosis_lifecycle>
|
|
144
|
-
|
|
145
|
-
<lifecycle>
|
|
146
|
-
|
|
147
|
-
**Creation:** When /workflow-verify-work starts new session
|
|
148
|
-
- Extract tests from SUMMARY.md files
|
|
149
|
-
- Set status to "testing"
|
|
150
|
-
- Current Test points to test 1
|
|
151
|
-
- All tests have result: [pending]
|
|
152
|
-
|
|
153
|
-
**During testing:**
|
|
154
|
-
- Present test from Current Test section
|
|
155
|
-
- User responds with pass confirmation or issue description
|
|
156
|
-
- Update test result (pass/issue/skipped)
|
|
157
|
-
- Update Summary counts
|
|
158
|
-
- If issue: append to Gaps section (YAML format), infer severity
|
|
159
|
-
- Move Current Test to next pending test
|
|
160
|
-
|
|
161
|
-
**On completion:**
|
|
162
|
-
- status → "complete"
|
|
163
|
-
- Current Test → "[testing complete]"
|
|
164
|
-
- Commit file
|
|
165
|
-
- Present summary with next steps
|
|
166
|
-
|
|
167
|
-
**Partial completion:**
|
|
168
|
-
- status → "partial" (if pending, blocked, or unresolved skipped tests remain)
|
|
169
|
-
- Current Test → "[testing paused — {N} items outstanding]"
|
|
170
|
-
- Commit file
|
|
171
|
-
- Present summary with outstanding items highlighted
|
|
172
|
-
|
|
173
|
-
**Resuming partial session:**
|
|
174
|
-
- `/workflow-verify-work {phase}` picks up from first pending/blocked test
|
|
175
|
-
- When all items resolved, status advances to "complete"
|
|
176
|
-
|
|
177
|
-
**Resume after /clear:**
|
|
178
|
-
1. Read frontmatter → know phase and status
|
|
179
|
-
2. Read Current Test → know where we are
|
|
180
|
-
3. Find first [pending] result → continue from there
|
|
181
|
-
4. Summary shows progress so far
|
|
182
|
-
|
|
183
|
-
</lifecycle>
|
|
184
|
-
|
|
185
|
-
<severity_guide>
|
|
186
|
-
|
|
187
|
-
Severity is INFERRED from user's natural language, never asked.
|
|
188
|
-
|
|
189
|
-
| User describes | Infer |
|
|
190
|
-
|----------------|-------|
|
|
191
|
-
| Crash, error, exception, fails completely, unusable | blocker |
|
|
192
|
-
| Doesn't work, nothing happens, wrong behavior, missing | major |
|
|
193
|
-
| Works but..., slow, weird, minor, small issue | minor |
|
|
194
|
-
| Color, font, spacing, alignment, visual, looks off | cosmetic |
|
|
195
|
-
|
|
196
|
-
Default: **major** (safe default, user can clarify if wrong)
|
|
197
|
-
|
|
198
|
-
</severity_guide>
|
|
199
|
-
|
|
200
|
-
<good_example>
|
|
201
|
-
```markdown
|
|
202
|
-
---
|
|
203
|
-
status: diagnosed
|
|
204
|
-
phase: 04-comments
|
|
205
|
-
source: 04-01-SUMMARY.md, 04-02-SUMMARY.md
|
|
206
|
-
started: 2025-01-15T10:30:00Z
|
|
207
|
-
updated: 2025-01-15T10:45:00Z
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
## Current Test
|
|
211
|
-
|
|
212
|
-
[testing complete]
|
|
213
|
-
|
|
214
|
-
## Tests
|
|
215
|
-
|
|
216
|
-
### 1. View Comments on Post
|
|
217
|
-
expected: Comments section expands, shows count and comment list
|
|
218
|
-
result: pass
|
|
219
|
-
|
|
220
|
-
### 2. Create Top-Level Comment
|
|
221
|
-
expected: Submit comment via rich text editor, appears in list with author info
|
|
222
|
-
result: issue
|
|
223
|
-
reported: "works but doesn't show until I refresh the page"
|
|
224
|
-
severity: major
|
|
225
|
-
|
|
226
|
-
### 3. Reply to a Comment
|
|
227
|
-
expected: Click Reply, inline composer appears, submit shows nested reply
|
|
228
|
-
result: pass
|
|
229
|
-
|
|
230
|
-
### 4. Visual Nesting
|
|
231
|
-
expected: 3+ level thread shows indentation, left borders, caps at reasonable depth
|
|
232
|
-
result: pass
|
|
233
|
-
|
|
234
|
-
### 5. Delete Own Comment
|
|
235
|
-
expected: Click delete on own comment, removed or shows [deleted] if has replies
|
|
236
|
-
result: pass
|
|
237
|
-
|
|
238
|
-
### 6. Comment Count
|
|
239
|
-
expected: Post shows accurate count, increments when adding comment
|
|
240
|
-
result: pass
|
|
241
|
-
|
|
242
|
-
## Summary
|
|
243
|
-
|
|
244
|
-
total: 6
|
|
245
|
-
passed: 5
|
|
246
|
-
issues: 1
|
|
247
|
-
pending: 0
|
|
248
|
-
skipped: 0
|
|
249
|
-
|
|
250
|
-
## Gaps
|
|
251
|
-
|
|
252
|
-
- truth: "Comment appears immediately after submission in list"
|
|
253
|
-
status: failed
|
|
254
|
-
reason: "User reported: works but doesn't show until I refresh the page"
|
|
255
|
-
severity: major
|
|
256
|
-
test: 2
|
|
257
|
-
root_cause: "useEffect in CommentList.tsx missing commentCount dependency"
|
|
258
|
-
artifacts:
|
|
259
|
-
- path: "src/components/CommentList.tsx"
|
|
260
|
-
issue: "useEffect missing dependency"
|
|
261
|
-
missing:
|
|
262
|
-
- "Add commentCount to useEffect dependency array"
|
|
263
|
-
debug_session: ".planning/debug/comment-not-refreshing.md"
|
|
264
|
-
```
|
|
265
|
-
</good_example>
|