@captain_z/zsk 1.4.3 → 1.6.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/README.md +64 -17
- package/dist/bin.js +174 -1
- package/dist/bin.js.map +1 -1
- package/dist/commands/add-flow.d.ts +1 -1
- package/dist/commands/add-flow.js +4 -9
- package/dist/commands/add-flow.js.map +1 -1
- package/dist/commands/add.d.ts +1 -0
- package/dist/commands/add.js +55 -11
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/check.js +10 -2
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/demo.d.ts +31 -0
- package/dist/commands/demo.js +533 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/issue.d.ts +8 -0
- package/dist/commands/issue.js +170 -6
- package/dist/commands/issue.js.map +1 -1
- package/dist/commands/module.js +23 -2
- package/dist/commands/module.js.map +1 -1
- package/dist/commands/project-init.js +1 -0
- package/dist/commands/project-init.js.map +1 -1
- package/dist/commands/remove.js +5 -7
- package/dist/commands/remove.js.map +1 -1
- package/dist/core/config.d.ts +14 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/installer.d.ts +5 -0
- package/dist/core/installer.js +105 -6
- package/dist/core/installer.js.map +1 -1
- package/dist/core/manifest.d.ts +8 -3
- package/dist/core/manifest.js +27 -18
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/skills.d.ts +3 -4
- package/dist/core/skills.js +34 -43
- package/dist/core/skills.js.map +1 -1
- package/dist/core/targets.js +1 -1
- package/dist/core/targets.js.map +1 -1
- package/package.json +2 -2
- package/schemas/module.schema.json +1 -1
- package/schemas/zsk-config.schema.json +122 -2
- package/templates/issue/default/assets/index.md +6 -0
- package/templates/issue/default/debug-logs/index.md +6 -0
- package/templates/issue/default/issue.md +35 -2
- package/templates/module/frontend-module/acceptance.md +18 -0
- package/templates/module/frontend-module/archive.md +17 -0
- package/templates/module/frontend-module/commit.md +15 -0
- package/templates/module/frontend-module/demo-outline.md +59 -0
- package/templates/module/frontend-module/demo-report.md +23 -0
- package/templates/module/frontend-module/deploy.md +18 -0
- package/templates/module/frontend-module/design.md +12 -0
- package/templates/module/frontend-module/module.yaml +4 -1
- package/templates/module/frontend-module/proposal.md +7 -0
- package/templates/module/frontend-module/ready.md +12 -0
- package/templates/module/frontend-module/review.md +12 -0
- package/templates/module/frontend-module/scenarios/index.md +21 -0
- package/templates/module/frontend-module/scenarios/p0-happy-path.spec.ts +13 -0
- package/templates/module/frontend-module/smoke.md +21 -0
- package/templates/module/frontend-module/spec.md +14 -0
- package/templates/module/frontend-module/tasks.md +13 -0
- package/templates/module/frontend-module/verify.md +12 -0
- package/templates/project-init/.issues/README.md +17 -1
- package/templates/project-init/.issues/_taxonomy.md +35 -0
- package/templates/project-init/.issues/index.md +7 -0
- package/templates/project-init/.raws/README.md +2 -1
- package/templates/project-init/.raws/backend-repositories/index.md +12 -0
- package/templates/project-init/.raws/index.md +3 -0
- package/templates/project-init/.raws/issues/index.md +4 -0
- package/templates/project-init/.zsk/checkpoints/index.md +4 -0
- package/templates/project-init/.zsk/config.yaml +56 -1
- package/templates/project-init/.zsk/learning/index.md +14 -0
- package/templates/project-init/.zsk/learning/proposals/.gitkeep +1 -0
- package/templates/project-init/.zsk/resource-manifest.json +55 -0
- package/templates/project-init/.zsk/workflow-state.json +6 -0
- package/templates/project-init/docs/_module-index.md +9 -1
- package/templates/project-init/project-config.md +5 -3
|
@@ -3,3 +3,9 @@
|
|
|
3
3
|
Put screenshots, recordings, HAR files, JSON payloads, exported browser state, and other reproduction artifacts for this issue here.
|
|
4
4
|
|
|
5
5
|
Reference each artifact from `../issue.md`.
|
|
6
|
+
|
|
7
|
+
## Artifact Log
|
|
8
|
+
|
|
9
|
+
| File | Type | Captured At | Used By | Notes |
|
|
10
|
+
| --- | --- | --- | --- | --- |
|
|
11
|
+
| `<file>` | screenshot / recording / HAR / JSON / other | `<ISO time>` | demo / smoke / verify / defect / review | `<why this artifact matters>` |
|
|
@@ -3,3 +3,9 @@
|
|
|
3
3
|
Put console output, test output, network logs, investigation logs, and command output for this issue here.
|
|
4
4
|
|
|
5
5
|
Reference each log from `../issue.md`.
|
|
6
|
+
|
|
7
|
+
## Log Index
|
|
8
|
+
|
|
9
|
+
| File | Source | Command / Context | Captured At | Result |
|
|
10
|
+
| --- | --- | --- | --- | --- |
|
|
11
|
+
| `<file>` | terminal / browser / server / CI / other | `<command or context>` | `<ISO time>` | pass / fail / inconclusive |
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
# __ISSUE_ID__-__ISSUE_SLUG__
|
|
2
2
|
|
|
3
|
+
## 问题类型
|
|
4
|
+
|
|
5
|
+
__ISSUE_TYPE__
|
|
6
|
+
|
|
3
7
|
## 问题级别
|
|
4
8
|
|
|
5
9
|
__SEVERITY__
|
|
6
10
|
|
|
11
|
+
## 严重性理由
|
|
12
|
+
|
|
13
|
+
- 用户/业务影响:
|
|
14
|
+
- 阻塞范围:
|
|
15
|
+
- 是否有 workaround:
|
|
16
|
+
|
|
7
17
|
## 模块
|
|
8
18
|
|
|
9
19
|
`__MODULE_ID__`
|
|
@@ -22,7 +32,7 @@ __SEVERITY__
|
|
|
22
32
|
|
|
23
33
|
1.
|
|
24
34
|
|
|
25
|
-
##
|
|
35
|
+
## 实际结果(当前现状)
|
|
26
36
|
|
|
27
37
|
|
|
28
38
|
## 预期结果
|
|
@@ -36,10 +46,33 @@ __SEVERITY__
|
|
|
36
46
|
## 影响范围
|
|
37
47
|
|
|
38
48
|
|
|
39
|
-
##
|
|
49
|
+
## 根因分析
|
|
50
|
+
|
|
51
|
+
- 初步根因:
|
|
52
|
+
- 置信度:
|
|
53
|
+
- 受影响代码/配置/资源:
|
|
54
|
+
- 排除过的原因:
|
|
55
|
+
|
|
56
|
+
## 修复路线
|
|
57
|
+
|
|
58
|
+
- 路由:Coding / Spec 更新 / Design 更新 / 测试数据 / 环境 / 无效问题
|
|
59
|
+
- Owner:
|
|
60
|
+
- 回归保护:测试 / 场景 / lint / checklist / 豁免
|
|
61
|
+
|
|
62
|
+
## Documentation Feedback
|
|
63
|
+
|
|
64
|
+
- 需要反哺的文档:
|
|
65
|
+
- [ ] `docs/{module}/spec.md`
|
|
66
|
+
- [ ] `docs/{module}/design.md`
|
|
67
|
+
- [ ] `docs/{module}/tasks.md`
|
|
68
|
+
- [ ] `docs/SYSTEM-SPEC.md`
|
|
69
|
+
- [ ] `.zsk/learning/proposals`
|
|
70
|
+
- 更新内容或 no-update rationale:
|
|
71
|
+
- 反哺时机:修复通过 verify 且经用户/产品确认后执行
|
|
40
72
|
|
|
41
73
|
|
|
42
74
|
## 状态
|
|
43
75
|
|
|
44
76
|
- 状态:Open
|
|
45
77
|
- 复测:
|
|
78
|
+
- 确认时间:
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# __MODULE_NAME__ Acceptance
|
|
2
|
+
|
|
3
|
+
## Verdict
|
|
4
|
+
|
|
5
|
+
- Result: NOT_STARTED
|
|
6
|
+
- Accepted by:
|
|
7
|
+
- Date:
|
|
8
|
+
|
|
9
|
+
## Evidence Summary
|
|
10
|
+
|
|
11
|
+
| Source | Conclusion | Link |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
|
|
14
|
+
## Documentation Feedback
|
|
15
|
+
|
|
16
|
+
- No-update rationale:
|
|
17
|
+
- Created from the ZSK module template; no acceptance has been performed yet.
|
|
18
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# __MODULE_NAME__ Archive
|
|
2
|
+
|
|
3
|
+
## Closure
|
|
4
|
+
|
|
5
|
+
| Item | Link |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
|
|
8
|
+
## Learning Proposals
|
|
9
|
+
|
|
10
|
+
| Finding | Target | Evidence |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
|
|
13
|
+
## Documentation Feedback
|
|
14
|
+
|
|
15
|
+
- No-update rationale:
|
|
16
|
+
- Created from the ZSK module template; archive has not run yet.
|
|
17
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# __MODULE_NAME__ Commit
|
|
2
|
+
|
|
3
|
+
## Commit Evidence
|
|
4
|
+
|
|
5
|
+
| Item | Evidence |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| Review gate | |
|
|
8
|
+
| Smoke gate | |
|
|
9
|
+
| Commit | |
|
|
10
|
+
|
|
11
|
+
## Documentation Feedback
|
|
12
|
+
|
|
13
|
+
- No-update rationale:
|
|
14
|
+
- Created from the ZSK module template; no commit evidence has been captured yet.
|
|
15
|
+
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# __MODULE_NAME__ Demo Outline
|
|
2
|
+
|
|
3
|
+
## Demo Flow
|
|
4
|
+
|
|
5
|
+
Use this section as the speaking order. The audience should be able to follow the demo from top to bottom without reading any appendix.
|
|
6
|
+
|
|
7
|
+
| Step | Show | Function / Business Point | Scenario | Source Alignment | Playwright Case | Presenter Line | Expected Visible Result | Next |
|
|
8
|
+
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
9
|
+
| 1 | Starting state and primary goal | | | PRD/SRS + Spec + Task + Test | `scenarios/<case>.spec.ts` | | | 2 |
|
|
10
|
+
| 2 | Core happy path / main value | | | PRD/SRS + Spec + Task + Test | `scenarios/<case>.spec.ts` | | | 3 |
|
|
11
|
+
| 3 | Required branch / role / validation / edge | | | PRD/SRS + Spec + Task + Test | `scenarios/<case>.spec.ts` | | | Final |
|
|
12
|
+
| Final | Final state, evidence, and known gaps | | | PRD/SRS + Spec + Task + Test | | summarize evidence and known gaps | | close |
|
|
13
|
+
|
|
14
|
+
## Opening
|
|
15
|
+
|
|
16
|
+
- Audience:
|
|
17
|
+
- One-sentence goal:
|
|
18
|
+
- Starting state:
|
|
19
|
+
- Primary user journey:
|
|
20
|
+
- What this demo proves:
|
|
21
|
+
|
|
22
|
+
## Coverage Alignment
|
|
23
|
+
|
|
24
|
+
Every required function point in the PRD/SRS should appear here, either as a demo step or as a known gap.
|
|
25
|
+
|
|
26
|
+
| Function / Business Point | PRD / SRS Need | Spec / Design Contract | Task Scope | Test Case / Assertion | Demo Step | Status |
|
|
27
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
28
|
+
| | | | | | 1 | covered |
|
|
29
|
+
| | | | | | 2 | covered |
|
|
30
|
+
| | | | | | 3 | covered |
|
|
31
|
+
|
|
32
|
+
## Rehearsal Checklist
|
|
33
|
+
|
|
34
|
+
| Demo Step | Browser Use Handoff | Playwright Case | Rehearsed | Evidence | Ready |
|
|
35
|
+
| --- | --- | --- | --- | --- | --- |
|
|
36
|
+
| 1 | | | no | trace/report/screenshot | no |
|
|
37
|
+
| 2 | | | no | trace/report/screenshot | no |
|
|
38
|
+
| 3 | | | no | trace/report/screenshot | no |
|
|
39
|
+
|
|
40
|
+
## Pause Rules
|
|
41
|
+
|
|
42
|
+
- Pause if login/session state is lost.
|
|
43
|
+
- Pause if the UI no longer matches the prepared Playwright case.
|
|
44
|
+
- Pause if a P0/P1 function point cannot be shown.
|
|
45
|
+
- Do not improvise new clicks during the external demo; record the blocker and return to Demo Prep.
|
|
46
|
+
|
|
47
|
+
## Appendix: Prep Sources
|
|
48
|
+
|
|
49
|
+
| Source | Path / Link | Used For |
|
|
50
|
+
| --- | --- | --- |
|
|
51
|
+
| SRS / PRD | | user goal and scope |
|
|
52
|
+
| Spec / AC | | observable pass criteria |
|
|
53
|
+
| Test cases | | scenario steps and expected result |
|
|
54
|
+
| Browser Use handoff | | login state, visible target, candidate locators |
|
|
55
|
+
|
|
56
|
+
## Documentation Feedback
|
|
57
|
+
|
|
58
|
+
- No-update rationale:
|
|
59
|
+
- Created from the ZSK module template; no demo outline has been generated yet.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# __MODULE_NAME__ Demo Report
|
|
2
|
+
|
|
3
|
+
## Session
|
|
4
|
+
|
|
5
|
+
- Session id:
|
|
6
|
+
- Status: NOT_STARTED
|
|
7
|
+
- Mode:
|
|
8
|
+
|
|
9
|
+
## Coverage
|
|
10
|
+
|
|
11
|
+
| Function Point | FR/AC | Scenario | Result | Evidence | Issues |
|
|
12
|
+
| --- | --- | --- | --- | --- | --- |
|
|
13
|
+
|
|
14
|
+
## Reusable Scenarios
|
|
15
|
+
|
|
16
|
+
| Scenario | Source | Reuse Target | Evidence |
|
|
17
|
+
| --- | --- | --- | --- |
|
|
18
|
+
|
|
19
|
+
## Documentation Feedback
|
|
20
|
+
|
|
21
|
+
- No-update rationale:
|
|
22
|
+
- Created from the ZSK module template; no demo has been performed yet.
|
|
23
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# __MODULE_NAME__ Deploy
|
|
2
|
+
|
|
3
|
+
## Deployment
|
|
4
|
+
|
|
5
|
+
| Environment | URL | Version | Result | Evidence |
|
|
6
|
+
| --- | --- | --- | --- | --- |
|
|
7
|
+
|
|
8
|
+
## Rollback
|
|
9
|
+
|
|
10
|
+
- Owner:
|
|
11
|
+
- Command:
|
|
12
|
+
- Notes:
|
|
13
|
+
|
|
14
|
+
## Documentation Feedback
|
|
15
|
+
|
|
16
|
+
- No-update rationale:
|
|
17
|
+
- Created from the ZSK module template; no deployment has been performed yet.
|
|
18
|
+
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# __MODULE_NAME__ Design
|
|
2
2
|
|
|
3
|
+
## Playwright Locator And State Strategy
|
|
4
|
+
|
|
5
|
+
| Scenario | Page / Route | Preferred Locator Strategy | State Coverage | API / Mock | Auth / Storage | Evidence |
|
|
6
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
7
|
+
| P0 happy path | | getByRole / getByLabel / getByTestId | loading / success / error | | | screenshot + trace |
|
|
8
|
+
|
|
9
|
+
Guidelines:
|
|
10
|
+
|
|
11
|
+
- Prefer user-facing locators: `getByRole`, `getByLabel`, `getByPlaceholder`, `getByTestId`.
|
|
12
|
+
- Add implementation tasks for missing accessible names, labels, or stable test ids.
|
|
13
|
+
- Define auth/storage reuse before demo so Playwright can run repeatably.
|
|
14
|
+
|
|
3
15
|
## Documentation Feedback
|
|
4
16
|
|
|
5
17
|
- No-update rationale:
|
|
@@ -9,6 +9,8 @@ sources: {}
|
|
|
9
9
|
runtime:
|
|
10
10
|
url: http://localhost:3000
|
|
11
11
|
tools:
|
|
12
|
+
- playwright_mcp
|
|
13
|
+
- playwright
|
|
12
14
|
- computer_use
|
|
13
15
|
- browser_use
|
|
14
16
|
|
|
@@ -18,7 +20,8 @@ tests:
|
|
|
18
20
|
automated:
|
|
19
21
|
unit: []
|
|
20
22
|
integration: []
|
|
21
|
-
e2e:
|
|
23
|
+
e2e:
|
|
24
|
+
- __DOCS_OUTPUT__/scenarios
|
|
22
25
|
tdd_required: true
|
|
23
26
|
|
|
24
27
|
outputs:
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# __MODULE_NAME__ Ready
|
|
2
|
+
|
|
3
|
+
## Gate
|
|
4
|
+
|
|
5
|
+
| Issue | Fix Evidence | Deployment | Ready |
|
|
6
|
+
| --- | --- | --- | --- |
|
|
7
|
+
|
|
8
|
+
## Documentation Feedback
|
|
9
|
+
|
|
10
|
+
- No-update rationale:
|
|
11
|
+
- Created from the ZSK module template; no fixes have been marked ready for verify yet.
|
|
12
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# __MODULE_NAME__ Scenarios
|
|
2
|
+
|
|
3
|
+
Reusable demo, verify, and regression scenarios for this module.
|
|
4
|
+
|
|
5
|
+
Use this index to keep human test cases, Playwright scenarios, and evidence links aligned with module FR/AC IDs. Scenario files should stay module-local and should be referenced from `module.yaml` when they become part of the verification baseline.
|
|
6
|
+
|
|
7
|
+
## Scenario Lifecycle
|
|
8
|
+
|
|
9
|
+
| Stage | Responsibility |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| Spec | Define scenario contract and FR/AC linkage |
|
|
12
|
+
| Design | Define locator/state/auth/evidence strategy |
|
|
13
|
+
| Task | Create Playwright skeleton and fixture work |
|
|
14
|
+
| Demo | Execute, record, and promote scenarios |
|
|
15
|
+
| Verify | Reuse scenarios for fix verification |
|
|
16
|
+
|
|
17
|
+
## Scenario Index
|
|
18
|
+
|
|
19
|
+
| Scenario | FR/AC Link | Automation | Evidence | Status |
|
|
20
|
+
| --- | --- | --- | --- | --- |
|
|
21
|
+
| `<scenario-name>` | `<FR/AC id>` | manual / Playwright / other | `<relative evidence path>` | draft / active / blocked / retired |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { test, expect } from "@playwright/test";
|
|
2
|
+
|
|
3
|
+
test.describe("__MODULE_NAME__ demo scenarios", () => {
|
|
4
|
+
test("P0 happy path", async ({ page }) => {
|
|
5
|
+
test.skip(!process.env.ZSK_DEMO_BASE_URL, "Set ZSK_DEMO_BASE_URL to run this scenario.");
|
|
6
|
+
|
|
7
|
+
await page.goto(process.env.ZSK_DEMO_BASE_URL);
|
|
8
|
+
|
|
9
|
+
// Replace this with the scenario contract from spec.md and locator strategy from design.md.
|
|
10
|
+
await expect(page).toHaveURL(/.+/);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# __MODULE_NAME__ Smoke
|
|
2
|
+
|
|
3
|
+
## Resource Contract
|
|
4
|
+
|
|
5
|
+
| Resource | Required | Source | Status | Used For | Blocker If Missing |
|
|
6
|
+
| --- | --- | --- | --- | --- | --- |
|
|
7
|
+
|
|
8
|
+
## Checks
|
|
9
|
+
|
|
10
|
+
| Check | Command | Result | Evidence |
|
|
11
|
+
| --- | --- | --- | --- |
|
|
12
|
+
|
|
13
|
+
## Test Alignment
|
|
14
|
+
|
|
15
|
+
| Test / Scenario | Source Requirement / Design / Issue | Expected Behavior | Accurate | Evidence |
|
|
16
|
+
| --- | --- | --- | --- | --- |
|
|
17
|
+
|
|
18
|
+
## Documentation Feedback
|
|
19
|
+
|
|
20
|
+
- No-update rationale:
|
|
21
|
+
- Created from the ZSK module template; no smoke has been performed yet.
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# __MODULE_NAME__ Spec
|
|
2
2
|
|
|
3
|
+
## Scenario Contracts
|
|
4
|
+
|
|
5
|
+
| Scenario | User Goal | Entry | Preconditions | Observable Result | PRD/SRS / FR/AC | Automate |
|
|
6
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
7
|
+
| P0 happy path | | | | | | yes |
|
|
8
|
+
|
|
9
|
+
Rules:
|
|
10
|
+
|
|
11
|
+
- Define behavior and observable outcomes here.
|
|
12
|
+
- Link every P0/P1 scenario back to the original PRD/SRS or accepted FR/AC.
|
|
13
|
+
- Mark unclear or conflicting facts as blockers instead of choosing behavior silently.
|
|
14
|
+
- Do not write brittle selectors in spec.
|
|
15
|
+
- Mark which P0/P1 scenarios must become Playwright cases.
|
|
16
|
+
|
|
3
17
|
## Documentation Feedback
|
|
4
18
|
|
|
5
19
|
- No-update rationale:
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# __MODULE_NAME__ Tasks
|
|
2
2
|
|
|
3
|
+
## Playwright Case Tasks
|
|
4
|
+
|
|
5
|
+
| Task | Scenario Contract | Case File | Fixture/Auth | Reuse Target | Status |
|
|
6
|
+
| --- | --- | --- | --- | --- | --- |
|
|
7
|
+
| Create P0 happy path skeleton | P0 happy path | `scenarios/p0-happy-path.spec.ts` | | demo, verify, regression | TODO |
|
|
8
|
+
|
|
9
|
+
Rules:
|
|
10
|
+
|
|
11
|
+
- Create Playwright skeletons before demo.
|
|
12
|
+
- Create or update source-aligned tests/scenarios before implementation for testable behavior changes.
|
|
13
|
+
- Tag cases as smoke/demo/verify/regression.
|
|
14
|
+
- Include tasks for labels/test ids required by stable locators.
|
|
15
|
+
|
|
3
16
|
## Documentation Feedback
|
|
4
17
|
|
|
5
18
|
- No-update rationale:
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
This is the default issue root configured by `.zsk/config.yaml` `paths.issues`. It stores local review findings, bug reports, screenshots, logs, reproduction evidence, and verification records created during project work.
|
|
4
4
|
|
|
5
|
+
Every actionable finding from demo, smoke, review, formal test, verify, or acceptance should be persisted here or under the configured `paths.issues` root. Chat-only findings are not durable tracking.
|
|
6
|
+
|
|
5
7
|
## Directory Contract
|
|
6
8
|
|
|
7
9
|
```text
|
|
8
10
|
.issues/
|
|
9
11
|
├── README.md
|
|
12
|
+
├── index.md # global module issue totals
|
|
10
13
|
└── {area-or-module}/
|
|
11
|
-
├──
|
|
14
|
+
├── index.md # module issue index and status table
|
|
12
15
|
├── BUG-0001-short-slug/
|
|
13
16
|
│ ├── issue.md # required issue body
|
|
14
17
|
│ ├── analysis.md # optional root-cause notes
|
|
@@ -17,12 +20,19 @@ This is the default issue root configured by `.zsk/config.yaml` `paths.issues`.
|
|
|
17
20
|
│ │ └── index.md
|
|
18
21
|
│ └── debug-logs/ # console, test, network, investigation logs
|
|
19
22
|
│ └── index.md
|
|
23
|
+
├── demo/ # optional stage view / evidence bucket
|
|
24
|
+
│ └── index.md
|
|
20
25
|
├── _evidence/ # shared evidence referenced by multiple issues/docs
|
|
21
26
|
└── _debug-logs/ # untriaged or cross-issue historical logs only
|
|
22
27
|
```
|
|
23
28
|
|
|
24
29
|
Use `zsk issue create -m <module-id>` to generate issue folders from the packaged template. `zsk init` does not write `_templates/` into the project.
|
|
25
30
|
|
|
31
|
+
`zsk issue update -m <module-id> --id <issue-dir> --status <status>` updates the concrete issue and refreshes:
|
|
32
|
+
|
|
33
|
+
- `.issues/{module}/index.md` — all issues and statuses for one module.
|
|
34
|
+
- `.issues/index.md` — module totals across the project.
|
|
35
|
+
|
|
26
36
|
## Bug Directory Rules
|
|
27
37
|
|
|
28
38
|
- Keep one confirmed bug per `BUG-xxxx-short-slug/` directory.
|
|
@@ -32,6 +42,12 @@ Use `zsk issue create -m <module-id>` to generate issue folders from the package
|
|
|
32
42
|
- Use `analysis.md` only when root-cause reasoning is long enough that it would obscure the issue body.
|
|
33
43
|
- If two symptoms share one root cause, keep one bug directory and list all symptoms as evidence inside it.
|
|
34
44
|
|
|
45
|
+
## Closure And Documentation Feedback
|
|
46
|
+
|
|
47
|
+
- Record the affected PRD/SRS, spec, design, task, test case, and evidence links in the issue.
|
|
48
|
+
- After the fix is verified and confirmed by the user/product owner, update the relevant `docs/{module}/spec.md`, `docs/{module}/design.md`, `docs/{module}/tasks.md`, or project spec for gaps or vague behavior exposed by the issue.
|
|
49
|
+
- Close the issue only after it links verification evidence, confirmation, documentation feedback update or no-update rationale, and regression guard.
|
|
50
|
+
|
|
35
51
|
## Relationship To Other Project Directories
|
|
36
52
|
|
|
37
53
|
| Directory | Purpose | May contain local screenshots/logs? |
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Issue Taxonomy
|
|
2
|
+
|
|
3
|
+
Managed issue records belong under `.issues/` or the configured `.zsk/config.yaml#paths.issues` root.
|
|
4
|
+
|
|
5
|
+
Each module has a module index at `.issues/{module}/index.md`. The issue root has a global index at `.issues/index.md` with module totals. `zsk issue create` and `zsk issue update` refresh both indexes.
|
|
6
|
+
|
|
7
|
+
| Type | Concrete Issue Directory | Prefix |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| Demo Issue | `.issues/{module}/{prefix}-0001-slug/` | `DEMO` |
|
|
10
|
+
| Smoke Issue | `.issues/{module}/{prefix}-0001-slug/` | `SMOKE` |
|
|
11
|
+
| Review Issue | `.issues/{module}/{prefix}-0001-slug/` | `REV` |
|
|
12
|
+
| Defect | `.issues/{module}/{prefix}-0001-slug/` | `DEFECT` |
|
|
13
|
+
| Verify Issue | `.issues/{module}/{prefix}-0001-slug/` | `VER` |
|
|
14
|
+
| Acceptance Issue | `.issues/{module}/{prefix}-0001-slug/` | `ACC` |
|
|
15
|
+
|
|
16
|
+
Stage directories such as `.issues/{module}/demo/index.md` may exist as stage views or evidence buckets. The authoritative status indexes are `.issues/{module}/index.md` and `.issues/index.md`.
|
|
17
|
+
|
|
18
|
+
`.raws/issues/` is reserved for imported external issue feeds or compatibility inputs.
|
|
19
|
+
|
|
20
|
+
## Required Intake
|
|
21
|
+
|
|
22
|
+
Every actionable issue should include:
|
|
23
|
+
|
|
24
|
+
- reproduction steps or triggering command;
|
|
25
|
+
- actual/current behavior;
|
|
26
|
+
- expected behavior;
|
|
27
|
+
- severity and rationale;
|
|
28
|
+
- environment/version/data source;
|
|
29
|
+
- evidence links;
|
|
30
|
+
- root-cause hypothesis and confidence;
|
|
31
|
+
- fix route;
|
|
32
|
+
- Documentation Feedback target or no-update rationale;
|
|
33
|
+
- regression guard.
|
|
34
|
+
- verification evidence and user/product confirmation before closing behavior-changing issues;
|
|
35
|
+
- updated module index and global issue index.
|
|
@@ -11,7 +11,8 @@ Start from `index.md` for the human/AI resource entry point. Use `manifest.json`
|
|
|
11
11
|
- `index.md`: human/AI navigation entry point for raw resources.
|
|
12
12
|
- `manifest.json`: machine-readable index maintained by `zsk prep` / `zsk sync`.
|
|
13
13
|
- `requirements/`: SRS, PRD, acceptance notes, and other requirement snapshots.
|
|
14
|
-
- `api-contracts/`: OpenAPI files,
|
|
14
|
+
- `api-contracts/`: OpenAPI files, API schemas, or exported API notes.
|
|
15
|
+
- `backend-repositories/`: small backend repository extracts that prove API/domain behavior.
|
|
15
16
|
- `design-sources/`: Figma, Modao, design handoff, and MCP capture snapshots.
|
|
16
17
|
- `design-assets/`: Icons, images, tokens, and other design asset snapshots.
|
|
17
18
|
- `testing/`: QA cases, acceptance cases, release cases, and imported test assets.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Backend Repositories
|
|
2
|
+
|
|
3
|
+
Store lightweight backend repository snapshots here when a module needs API or domain evidence from server code.
|
|
4
|
+
|
|
5
|
+
Prefer small, provenance-rich extracts over full repository dumps:
|
|
6
|
+
|
|
7
|
+
- OpenAPI or generated API contract files.
|
|
8
|
+
- Route/controller index excerpts that prove endpoint behavior.
|
|
9
|
+
- DTO/schema/type definitions used by frontend contracts.
|
|
10
|
+
- README or integration notes that define runtime requirements.
|
|
11
|
+
|
|
12
|
+
Record the real repository origin in `.zsk/config.yaml` `sources`; this directory is only the local snapshot landing zone.
|
|
@@ -13,6 +13,8 @@ This file is the human/AI entry point for upstream facts and local snapshots. It
|
|
|
13
13
|
│ └── index.md
|
|
14
14
|
├── api-contracts/ # API contracts, OpenAPI files, backend repo extracts
|
|
15
15
|
│ └── index.md
|
|
16
|
+
├── backend-repositories/ # lightweight backend repo extracts
|
|
17
|
+
│ └── index.md
|
|
16
18
|
├── design-sources/ # Figma, Modao, MCP, design handoff captures
|
|
17
19
|
│ └── index.md
|
|
18
20
|
├── design-assets/ # icons, images, tokens, screenshots, raw design assets
|
|
@@ -33,6 +35,7 @@ Real origins belong in `.zsk/config.yaml` `sources`. A source can be an online U
|
|
|
33
35
|
|---|---|---|
|
|
34
36
|
| Requirements | `requirements/index.md` | `srs`, `prd`, `manual` |
|
|
35
37
|
| API contracts | `api-contracts/index.md` | `api_contract`, `vendor_doc` |
|
|
38
|
+
| Backend repositories | `backend-repositories/index.md` | `backend_repo`, git repository extracts |
|
|
36
39
|
| Design sources | `design-sources/index.md` | `design`, Figma, Modao, MCP |
|
|
37
40
|
| Design assets | `design-assets/index.md` | `design_asset`, tokens, images |
|
|
38
41
|
| Testing assets | `testing/index.md` | `test_case`, QA sheets, acceptance cases |
|
|
@@ -25,15 +25,70 @@ paths:
|
|
|
25
25
|
# kind: figma
|
|
26
26
|
# url: https://www.figma.com/file/...
|
|
27
27
|
# snapshot: .raws/design-sources/figma-main.json
|
|
28
|
+
# backend_api:
|
|
29
|
+
# type: backend_repo
|
|
30
|
+
# origin:
|
|
31
|
+
# kind: git
|
|
32
|
+
# repository: https://github.com/example/backend-api.git
|
|
33
|
+
# path: openapi.yaml
|
|
34
|
+
# snapshot: .raws/backend-repositories/backend-openapi.yaml
|
|
35
|
+
# acceptance_cases:
|
|
36
|
+
# type: test_case
|
|
37
|
+
# origin:
|
|
38
|
+
# kind: url
|
|
39
|
+
# url: https://example.com/qa-cases
|
|
40
|
+
# snapshot: .raws/testing/acceptance-cases.md
|
|
28
41
|
sources: {}
|
|
29
42
|
|
|
30
43
|
tools:
|
|
31
44
|
runtime_ui:
|
|
32
|
-
-
|
|
45
|
+
- playwright_cli
|
|
46
|
+
- playwright_mcp
|
|
47
|
+
- playwright
|
|
33
48
|
- browser_use
|
|
49
|
+
- computer_use
|
|
34
50
|
design:
|
|
35
51
|
- figma_mcp
|
|
36
52
|
|
|
37
53
|
modules:
|
|
38
54
|
index: docs/_module-index.md
|
|
39
55
|
root: docs
|
|
56
|
+
|
|
57
|
+
automation:
|
|
58
|
+
smoke:
|
|
59
|
+
commands:
|
|
60
|
+
- pnpm lint
|
|
61
|
+
- pnpm typecheck
|
|
62
|
+
- pnpm test
|
|
63
|
+
deploy:
|
|
64
|
+
command: pnpm deploy:staging
|
|
65
|
+
demo:
|
|
66
|
+
# Default hybrid lane:
|
|
67
|
+
# - Playwright CLI/UI mode is preferred for visible demo performance, controlled stop/pause, screenshots, traces, reports, and repeatable runs.
|
|
68
|
+
# - Playwright MCP inspects structured accessibility snapshots and proposes operations when needed.
|
|
69
|
+
# - Browser Use identifies the human-intent target and preserves existing logged-in browser/profile state when auth cannot be reproduced cheaply.
|
|
70
|
+
# - Computer Use is reserved for visual/system-level context that browser automation cannot expose.
|
|
71
|
+
# - Playwright consumes the handoff to pre-write/rehearse scenarios, then performs the external demo with visible trace/report evidence.
|
|
72
|
+
defaultMode: hybrid
|
|
73
|
+
baseUrl: http://localhost:3000
|
|
74
|
+
command: pnpm dev
|
|
75
|
+
evidenceDir: .issues/{module}/demo/_evidence
|
|
76
|
+
scenarioDir: docs/{module}/scenarios
|
|
77
|
+
playwright:
|
|
78
|
+
config: playwright.config.ts
|
|
79
|
+
project: chromium
|
|
80
|
+
cli: playwright-cli
|
|
81
|
+
computerUse:
|
|
82
|
+
enabled: false
|
|
83
|
+
role: understand-and-decide
|
|
84
|
+
bridge:
|
|
85
|
+
enabled: true
|
|
86
|
+
# decisionTool may be playwright_mcp for structured accessibility snapshots,
|
|
87
|
+
# browser_use for existing login/profile state, or computer_use for visual/system-level understanding.
|
|
88
|
+
decisionTool: playwright_mcp
|
|
89
|
+
executionTool: playwright
|
|
90
|
+
planFile: .zsk/demo-sessions/{module}/operation-plan.json
|
|
91
|
+
executionFile: .zsk/demo-sessions/{module}/playwright-execution.json
|
|
92
|
+
verify:
|
|
93
|
+
commands:
|
|
94
|
+
- pnpm test:e2e
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# ZSK Learning
|
|
2
|
+
|
|
3
|
+
Project feedback and learning proposals belong here. Learning artifacts may propose changes to templates, constraints, skills, or packs, but they must not auto-mutate core assets.
|
|
4
|
+
|
|
5
|
+
## Rules
|
|
6
|
+
|
|
7
|
+
- Project-specific lessons stay in module archive docs or `docs/SYSTEM-SPEC.md`.
|
|
8
|
+
- Reusable improvements become proposals under `.zsk/learning/proposals/`.
|
|
9
|
+
- Core zsk changes require review, evidence, and a regression prompt before promotion.
|
|
10
|
+
- Learning proposals may target harness constraints, templates, resource maps, root skills, or optional packs; they do not edit those targets automatically.
|
|
11
|
+
|
|
12
|
+
## Proposal Template
|
|
13
|
+
|
|
14
|
+
Use `harness/learning/proposal-template.md` from the installed zsk source as the canonical shape.
|