forgedev 1.2.0 → 1.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.
- package/README.md +57 -10
- package/bin/chainproof.js +126 -0
- package/package.json +25 -7
- package/src/chainproof-bridge.js +330 -0
- package/src/ci-mode.js +85 -0
- package/src/claude-configurator.js +86 -49
- package/src/cli.js +30 -7
- package/src/composer.js +159 -34
- package/src/doctor-checks-chainproof.js +106 -0
- package/src/doctor-checks.js +39 -20
- package/src/doctor-prompts.js +9 -9
- package/src/doctor.js +37 -4
- package/src/guided.js +3 -3
- package/src/index.js +31 -10
- package/src/init-mode.js +64 -11
- package/src/menu.js +178 -0
- package/src/prompts.js +5 -12
- package/src/recommender.js +134 -10
- package/src/scanner.js +57 -2
- package/src/uat-generator.js +204 -189
- package/src/update-check.js +9 -4
- package/src/update.js +1 -1
- package/src/utils.js +64 -5
- package/templates/ai/guardrails-py/backend/app/ai/__init__.py +29 -0
- package/templates/ai/guardrails-py/backend/app/ai/audit_log.py +133 -0
- package/templates/ai/guardrails-py/backend/app/ai/client.py.template +323 -0
- package/templates/ai/guardrails-py/backend/app/ai/health.py.template +157 -0
- package/templates/ai/guardrails-py/backend/app/ai/input_guard.py +98 -0
- package/templates/ai/guardrails-ts/src/lib/ai/audit-log.ts.template +164 -0
- package/templates/ai/guardrails-ts/src/lib/ai/client.ts.template +403 -0
- package/templates/ai/guardrails-ts/src/lib/ai/health.ts.template +165 -0
- package/templates/ai/guardrails-ts/src/lib/ai/index.ts.template +17 -0
- package/templates/ai/guardrails-ts/src/lib/ai/input-guard.ts.template +124 -0
- package/templates/auth/nextauth/src/lib/auth.ts.template +12 -7
- package/templates/backend/express/Dockerfile.template +18 -0
- package/templates/backend/express/package.json.template +33 -0
- package/templates/backend/express/src/index.ts.template +34 -0
- package/templates/backend/express/src/routes/health.ts.template +27 -0
- package/templates/backend/express/tsconfig.json +17 -0
- package/templates/backend/fastapi/backend/Dockerfile.template +5 -0
- package/templates/backend/fastapi/backend/app/api/health.py.template +1 -1
- package/templates/backend/fastapi/backend/app/core/config.py.template +1 -1
- package/templates/backend/fastapi/backend/app/core/errors.py +1 -1
- package/templates/backend/fastapi/backend/app/main.py.template +3 -1
- package/templates/backend/fastapi/backend/requirements.txt.template +2 -0
- package/templates/backend/hono/Dockerfile.template +18 -0
- package/templates/backend/hono/package.json.template +31 -0
- package/templates/backend/hono/src/index.ts.template +32 -0
- package/templates/backend/hono/src/routes/health.ts.template +27 -0
- package/templates/backend/hono/tsconfig.json +18 -0
- package/templates/base/docs/uat/UAT_TEMPLATE.md.template +1 -1
- package/templates/chainproof/base/.chainproof/config.json.template +11 -0
- package/templates/chainproof/base/.chainproof/mcp-server.mjs +310 -0
- package/templates/chainproof/base/.mcp.json +9 -0
- package/templates/chainproof/fastapi/.chainproof/middleware.json.template +14 -0
- package/templates/chainproof/nextjs/.chainproof/hooks.json.template +19 -0
- package/templates/chainproof/polyglot/.chainproof/config.json.template +21 -0
- package/templates/claude-code/agents/architect.md +25 -11
- package/templates/claude-code/agents/build-error-resolver.md +19 -5
- package/templates/claude-code/agents/chief-of-staff.md +42 -8
- package/templates/claude-code/agents/code-quality-reviewer.md +14 -0
- package/templates/claude-code/agents/database-reviewer.md +15 -1
- package/templates/claude-code/agents/deep-reviewer.md +191 -0
- package/templates/claude-code/agents/doc-updater.md +19 -5
- package/templates/claude-code/agents/docs-lookup.md +19 -5
- package/templates/claude-code/agents/e2e-runner.md +26 -12
- package/templates/claude-code/agents/enforcement-gate.md +102 -0
- package/templates/claude-code/agents/frontend-builder.md +188 -0
- package/templates/claude-code/agents/harness-optimizer.md +36 -1
- package/templates/claude-code/agents/loop-operator.md +27 -13
- package/templates/claude-code/agents/planner.md +21 -7
- package/templates/claude-code/agents/product-strategist.md +24 -10
- package/templates/claude-code/agents/production-readiness.md +14 -0
- package/templates/claude-code/agents/prompt-auditor.md +115 -0
- package/templates/claude-code/agents/refactor-cleaner.md +22 -8
- package/templates/claude-code/agents/security-reviewer.md +14 -0
- package/templates/claude-code/agents/spec-validator.md +15 -1
- package/templates/claude-code/agents/tdd-guide.md +21 -7
- package/templates/claude-code/agents/uat-validator.md +14 -0
- package/templates/claude-code/claude-md/base.md +14 -7
- package/templates/claude-code/claude-md/fastapi.md +8 -8
- package/templates/claude-code/claude-md/fullstack.md +6 -6
- package/templates/claude-code/claude-md/hono.md +18 -0
- package/templates/claude-code/claude-md/nextjs.md +5 -5
- package/templates/claude-code/claude-md/remix.md +18 -0
- package/templates/claude-code/commands/audit-security.md +14 -0
- package/templates/claude-code/commands/audit-spec.md +14 -0
- package/templates/claude-code/commands/audit-wiring.md +14 -0
- package/templates/claude-code/commands/build-fix.md +28 -0
- package/templates/claude-code/commands/build-ui.md +59 -0
- package/templates/claude-code/commands/code-review.md +53 -31
- package/templates/claude-code/commands/fix-loop.md +211 -0
- package/templates/claude-code/commands/full-audit.md +36 -8
- package/templates/claude-code/commands/generate-prd.md +1 -1
- package/templates/claude-code/commands/generate-sdd.md +74 -0
- package/templates/claude-code/commands/generate-uat.md +107 -35
- package/templates/claude-code/commands/help.md +68 -0
- package/templates/claude-code/commands/live-uat.md +268 -0
- package/templates/claude-code/commands/optimize-claude-md.md +15 -1
- package/templates/claude-code/commands/plan.md +3 -3
- package/templates/claude-code/commands/pre-pr.md +57 -19
- package/templates/claude-code/commands/product-strategist.md +21 -0
- package/templates/claude-code/commands/resume-session.md +10 -10
- package/templates/claude-code/commands/run-uat.md +59 -2
- package/templates/claude-code/commands/save-session.md +10 -10
- package/templates/claude-code/commands/simplify.md +36 -0
- package/templates/claude-code/commands/tdd.md +17 -18
- package/templates/claude-code/commands/verify-all.md +24 -0
- package/templates/claude-code/commands/verify-intent.md +55 -0
- package/templates/claude-code/commands/workflows.md +52 -40
- package/templates/claude-code/hooks/polyglot.json +10 -1
- package/templates/claude-code/hooks/python.json +10 -1
- package/templates/claude-code/hooks/scripts/autofix-polyglot.mjs +2 -2
- package/templates/claude-code/hooks/scripts/autofix-python.mjs +1 -1
- package/templates/claude-code/hooks/scripts/autofix-typescript.mjs +1 -1
- package/templates/claude-code/hooks/scripts/code-hygiene.mjs +293 -0
- package/templates/claude-code/hooks/scripts/pre-commit-gate.mjs +207 -0
- package/templates/claude-code/hooks/typescript.json +10 -1
- package/templates/claude-code/skills/ai-prompts/SKILL.md +119 -41
- package/templates/claude-code/skills/git-workflow/SKILL.md +5 -5
- package/templates/claude-code/skills/nextjs/SKILL.md +1 -1
- package/templates/claude-code/skills/playwright/SKILL.md +5 -5
- package/templates/claude-code/skills/security-api/SKILL.md +1 -1
- package/templates/claude-code/skills/security-web/SKILL.md +1 -1
- package/templates/claude-code/skills/testing-patterns/SKILL.md +9 -9
- package/templates/database/prisma-postgres/{.env.example → .env.example.template} +1 -0
- package/templates/database/sqlalchemy-postgres/{.env.example → .env.example.template} +1 -0
- package/templates/docs-portal/fastapi/backend/app/portal/__pycache__/docs_reader.cpython-314.pyc +0 -0
- package/templates/docs-portal/fastapi/backend/app/portal/docs_reader.py +201 -0
- package/templates/docs-portal/fastapi/backend/app/portal/html_renderer.py +229 -0
- package/templates/docs-portal/fastapi/backend/app/portal/router.py.template +35 -0
- package/templates/docs-portal/nextjs/src/app/portal/[category]/[slug]/page.tsx +81 -0
- package/templates/docs-portal/nextjs/src/app/portal/[category]/page.tsx +65 -0
- package/templates/docs-portal/nextjs/src/app/portal/layout.tsx.template +54 -0
- package/templates/docs-portal/nextjs/src/app/portal/page.tsx +85 -0
- package/templates/docs-portal/nextjs/src/components/portal/markdown-renderer.tsx +101 -0
- package/templates/docs-portal/nextjs/src/components/portal/mobile-portal-nav.tsx +81 -0
- package/templates/docs-portal/nextjs/src/components/portal/portal-nav.tsx +86 -0
- package/templates/docs-portal/nextjs/src/lib/docs.ts +139 -0
- package/templates/frontend/nextjs/package.json.template +3 -1
- package/templates/frontend/react/index.html.template +12 -0
- package/templates/frontend/react/package.json.template +34 -0
- package/templates/frontend/react/src/App.tsx.template +10 -0
- package/templates/frontend/react/src/index.css +1 -0
- package/templates/frontend/react/src/main.tsx +10 -0
- package/templates/frontend/react/tsconfig.json +17 -0
- package/templates/frontend/react/vite.config.ts.template +15 -0
- package/templates/frontend/react/vitest.config.ts +9 -0
- package/templates/frontend/remix/app/root.tsx.template +31 -0
- package/templates/frontend/remix/app/routes/_index.tsx.template +19 -0
- package/templates/frontend/remix/app/routes/api.health.ts.template +10 -0
- package/templates/frontend/remix/app/tailwind.css +1 -0
- package/templates/frontend/remix/package.json.template +39 -0
- package/templates/frontend/remix/tsconfig.json +18 -0
- package/templates/frontend/remix/vite.config.ts.template +7 -0
- package/templates/infra/github-actions/.github/workflows/ci.yml.template +3 -0
- package/docs/00-README.md +0 -310
- package/docs/01-universal-prompt-library.md +0 -1049
- package/docs/02-claude-code-mastery-playbook.md +0 -283
- package/docs/03-multi-agent-verification.md +0 -565
- package/docs/04-errata-and-verification-checklist.md +0 -284
- package/docs/05-universal-scaffolder-vision.md +0 -452
- package/docs/06-confidence-assessment-and-repo-prompt.md +0 -407
- package/docs/errata.md +0 -58
- package/docs/multi-agent-verification.md +0 -66
- package/docs/playbook.md +0 -95
- package/docs/prompt-library.md +0 -160
- package/docs/uat/UAT_CHECKLIST.csv +0 -9
- package/docs/uat/UAT_TEMPLATE.md +0 -163
- package/templates/claude-code/commands/done.md +0 -19
- /package/{docs/plans/.gitkeep → templates/docs-portal/fastapi/backend/app/portal/__init__.py} +0 -0
|
@@ -1,35 +1,107 @@
|
|
|
1
|
-
Generate UAT (User Acceptance Test) scenarios
|
|
2
|
-
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
1
|
+
Generate comprehensive UAT (User Acceptance Test) scenarios by analyzing the actual codebase, not guessing.
|
|
2
|
+
|
|
3
|
+
## Phase 1: Deep Code Analysis
|
|
4
|
+
|
|
5
|
+
Read the codebase systematically to build a complete feature inventory:
|
|
6
|
+
|
|
7
|
+
### 1.1 Route/Endpoint Discovery
|
|
8
|
+
- Read ALL route files (API routes, page routes, middleware)
|
|
9
|
+
- For each route: extract HTTP method, path, parameters, request body schema, response schema
|
|
10
|
+
- Note which routes require authentication and which roles can access them
|
|
11
|
+
|
|
12
|
+
### 1.2 Business Logic Extraction
|
|
13
|
+
- Read service/logic files (not just routes, the actual business logic)
|
|
14
|
+
- For each function that transforms data: extract the input, the rule, and the expected output
|
|
15
|
+
- Examples: "if order total > $100, apply 10% discount", "if user.role !== 'admin', return 403"
|
|
16
|
+
- Record these as testable assertions with computed expected values
|
|
17
|
+
|
|
18
|
+
### 1.3 UI Page Inventory (frontend projects)
|
|
19
|
+
- Read all page/view components
|
|
20
|
+
- For each page: list all interactive elements (forms, buttons, dropdowns, modals, tabs)
|
|
21
|
+
- Note form validation rules (required fields, min/max, regex patterns)
|
|
22
|
+
- Note conditional rendering (what appears/disappears based on state)
|
|
23
|
+
|
|
24
|
+
### 1.4 Data Flow Mapping
|
|
25
|
+
- Trace CRUD lifecycles: where is data created, read, updated, deleted?
|
|
26
|
+
- Map cross-page dependencies: "creating X on page A should show X on page B"
|
|
27
|
+
- Identify cascade effects: "deleting user should delete their posts"
|
|
28
|
+
|
|
29
|
+
### 1.5 Integration Points
|
|
30
|
+
- External API calls (payment, email, auth providers)
|
|
31
|
+
- File uploads/downloads
|
|
32
|
+
- WebSocket/real-time features
|
|
33
|
+
- Background jobs/queues
|
|
34
|
+
|
|
35
|
+
## Phase 2: Scenario Generation
|
|
36
|
+
|
|
37
|
+
For EVERY feature discovered in Phase 1, generate scenarios in these categories:
|
|
38
|
+
|
|
39
|
+
### Category A: Happy Path
|
|
40
|
+
- Standard usage with valid data
|
|
41
|
+
- Include specific test data values and computed expected results
|
|
42
|
+
- Example: "Submit order with 3 items totaling $150 -> expect 10% discount applied, total $135"
|
|
43
|
+
|
|
44
|
+
### Category B: Business Logic Verification
|
|
45
|
+
- Test every conditional branch found in Phase 1.2
|
|
46
|
+
- Include boundary values (exactly at threshold, one above, one below)
|
|
47
|
+
- Example: "Order total $99.99 -> no discount; $100.00 -> 10% discount; $100.01 -> 10% discount"
|
|
48
|
+
|
|
49
|
+
### Category C: Data Flow / Multi-Step Workflows
|
|
50
|
+
- CRUD lifecycle: create -> verify exists -> update -> verify changed -> delete -> verify gone
|
|
51
|
+
- Cross-page: create on page A -> navigate to page B -> verify appears
|
|
52
|
+
- Concurrent: two users modifying same resource
|
|
53
|
+
|
|
54
|
+
### Category D: Validation & Error Handling
|
|
55
|
+
- Every form field: empty, too short, too long, special characters, SQL injection attempt, XSS attempt
|
|
56
|
+
- API: missing required fields, wrong types, invalid values
|
|
57
|
+
- Auth: unauthenticated access, wrong role, expired token
|
|
58
|
+
|
|
59
|
+
### Category E: Edge Cases
|
|
60
|
+
- Empty states (no data, first-time user)
|
|
61
|
+
- Maximum load (list with 1000 items, very long text input)
|
|
62
|
+
- Rapid actions (double-click submit, back button during save)
|
|
63
|
+
- Network failure (what happens if API call fails mid-operation?)
|
|
64
|
+
|
|
65
|
+
### Category F: Permissions & Roles
|
|
66
|
+
- For each role: what can they access, what is denied?
|
|
67
|
+
- Role escalation: can a regular user access admin endpoints?
|
|
68
|
+
- Test every route/page against each role
|
|
69
|
+
|
|
70
|
+
## Phase 3: Prioritization
|
|
71
|
+
|
|
72
|
+
- **P0 (Critical)**: Authentication, core CRUD, data integrity, payment flows, security boundaries
|
|
73
|
+
- **P1 (Important)**: Validation, permissions, error handling, search/filter, export
|
|
74
|
+
- **P2 (Standard)**: UI polish, empty states, loading states, edge cases
|
|
75
|
+
- **P3 (Low)**: Cosmetic issues, minor UX improvements
|
|
76
|
+
|
|
77
|
+
Target: Generate scenarios proportional to the codebase size. A typical app should have:
|
|
78
|
+
- 1-2 scenarios per API endpoint
|
|
79
|
+
- 1-2 scenarios per UI page
|
|
80
|
+
- 3-5 scenarios per business logic rule
|
|
81
|
+
- At minimum: 10 P0, 20 P1, 15 P2, 5 P3
|
|
82
|
+
|
|
83
|
+
## Output
|
|
84
|
+
|
|
85
|
+
Generate three files:
|
|
86
|
+
|
|
87
|
+
### docs/uat/UAT_TEMPLATE.md
|
|
88
|
+
Full scenario document with columns:
|
|
89
|
+
| ID | Feature | Scenario | Steps | Expected Result | Priority | Source |
|
|
90
|
+
|
|
91
|
+
The **Source** column references the file and line where the logic was found (e.g., `src/services/order.js:45`).
|
|
92
|
+
|
|
93
|
+
### docs/uat/UAT_CHECKLIST.csv
|
|
94
|
+
CSV for tracking:
|
|
95
|
+
ID,Feature,Scenario,Priority,Status,Tester,Date,Notes
|
|
96
|
+
|
|
97
|
+
### docs/uat/BUSINESS_RULES.md
|
|
98
|
+
Extracted business rules with test values:
|
|
99
|
+
```
|
|
100
|
+
## Rule: [name]
|
|
101
|
+
- Source: [file:line]
|
|
102
|
+
- Logic: [description]
|
|
103
|
+
- Test cases:
|
|
104
|
+
| Input | Expected Output | Boundary? |
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Do NOT modify any code. This is a documentation-only task.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
Ask the developer: "What are you trying to do?" Then guide them to the right workflow.
|
|
2
|
+
|
|
3
|
+
## Decision Tree
|
|
4
|
+
|
|
5
|
+
Based on the developer's answer, recommend the appropriate workflow:
|
|
6
|
+
|
|
7
|
+
### "I want to start building a feature"
|
|
8
|
+
→ Run `/plan` to create an implementation plan first
|
|
9
|
+
|
|
10
|
+
### "I want to build frontend UI"
|
|
11
|
+
→ Run `/build-ui` to generate UI with AI-powered tools
|
|
12
|
+
|
|
13
|
+
### "I want to write tests first"
|
|
14
|
+
→ Run `/tdd` to follow test-driven development
|
|
15
|
+
|
|
16
|
+
### "I have build errors / lint errors / type errors"
|
|
17
|
+
→ Run `/build-fix` to fix them incrementally
|
|
18
|
+
|
|
19
|
+
### "I want to check if everything is working"
|
|
20
|
+
→ Run `/status` for a quick dashboard
|
|
21
|
+
→ Run `/verify-all` for a thorough check
|
|
22
|
+
|
|
23
|
+
### "My code is messy / I have duplicate code / files are too long"
|
|
24
|
+
→ Run `/simplify` to find duplicates, split long files, and extract shared utilities
|
|
25
|
+
|
|
26
|
+
### "I want to review my code before committing"
|
|
27
|
+
→ Run `/code-review` for security + quality review
|
|
28
|
+
|
|
29
|
+
### "I'm ready to make a PR"
|
|
30
|
+
→ Run `/pre-pr` for the complete pre-PR checklist
|
|
31
|
+
|
|
32
|
+
### "I want to run UAT"
|
|
33
|
+
→ Run `/run-uat` for one-off or sandbox UAT runs using the checklist/template flow
|
|
34
|
+
→ Run `/live-uat` for UAT against live-like data or long-lived UAT environments
|
|
35
|
+
|
|
36
|
+
### "I want a full audit of the project"
|
|
37
|
+
→ Run `/full-audit` to run every review agent
|
|
38
|
+
|
|
39
|
+
### "I want to check security"
|
|
40
|
+
→ Run `/audit-security` for a focused security audit
|
|
41
|
+
|
|
42
|
+
### "I want to generate documentation"
|
|
43
|
+
→ `/generate-prd` for a Product Requirements Document
|
|
44
|
+
→ `/generate-sdd` for a Software Design Document
|
|
45
|
+
→ `/generate-uat` for UAT test scenarios
|
|
46
|
+
|
|
47
|
+
### "I don't know what to work on"
|
|
48
|
+
→ Run `/next` to figure out the highest-priority task
|
|
49
|
+
|
|
50
|
+
### "I think I'm done with this task"
|
|
51
|
+
→ Just commit. The pre-commit gate automatically runs lint, tests, and security checks.
|
|
52
|
+
→ If the gate blocks the commit, run `/build-fix` to resolve issues.
|
|
53
|
+
|
|
54
|
+
### "I want to save my progress and come back later"
|
|
55
|
+
→ Run `/save-session` to save context
|
|
56
|
+
→ Run `/resume-session` to pick up where you left off
|
|
57
|
+
|
|
58
|
+
### "I want to see all available workflows"
|
|
59
|
+
→ Run `/workflows` for the complete list
|
|
60
|
+
|
|
61
|
+
## All Commands Reference
|
|
62
|
+
|
|
63
|
+
**Daily:** `/workflows`, `/status`, `/next`
|
|
64
|
+
**Development:** `/plan`, `/tdd`, `/build-fix`, `/fix-loop`, `/build-ui`, `/code-review`, `/simplify`
|
|
65
|
+
**Verification:** `/verify-all`, `/full-audit`, `/audit-spec`, `/audit-wiring`, `/audit-security`, `/verify-intent`
|
|
66
|
+
**Release:** `/pre-pr`, `/run-uat`, `/live-uat`
|
|
67
|
+
**Generation:** `/generate-prd`, `/generate-sdd`, `/generate-uat`, `/optimize-claude-md`
|
|
68
|
+
**Session:** `/save-session`, `/resume-session`
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
Run a comprehensive live UAT by interacting with the running application in a real browser or via API calls.
|
|
2
|
+
|
|
3
|
+
This is NOT a code review or automated test run. You will physically navigate the app, click buttons, fill forms, test every feature, and verify outputs against ground truth.
|
|
4
|
+
|
|
5
|
+
## Step 1: Detect Testing Mode
|
|
6
|
+
|
|
7
|
+
Determine what kind of application this is by reading the project structure:
|
|
8
|
+
|
|
9
|
+
- **Has frontend** (Next.js, React, Vue, etc.) → Browser-based testing. Requires a browser automation tool.
|
|
10
|
+
- **API only** (FastAPI, Express, etc.) → Endpoint testing via curl, httpie, or API client MCP.
|
|
11
|
+
- **Full-stack** → Both browser AND API testing.
|
|
12
|
+
|
|
13
|
+
### Browser Testing Setup (frontend projects only)
|
|
14
|
+
Check which browser tool is available:
|
|
15
|
+
- `mcp__Claude_in_Chrome__*` tools (Claude in Chrome extension) — preferred
|
|
16
|
+
- Playwright MCP or similar browser automation MCP
|
|
17
|
+
- Any other browser MCP tool
|
|
18
|
+
|
|
19
|
+
If none are available, tell the user: "Install a browser automation tool (Claude in Chrome extension, Playwright MCP, etc.) to run live UI testing. Alternatively, I can test API endpoints only."
|
|
20
|
+
|
|
21
|
+
## Step 2: Gather Test Parameters
|
|
22
|
+
|
|
23
|
+
Ask the user these questions before starting. Skip questions that don't apply to the detected stack.
|
|
24
|
+
|
|
25
|
+
1. **App URL**: What URL should I test against? (e.g., `http://localhost:3000`, a staging URL)
|
|
26
|
+
2. **Login**: What account(s) should I use? (You will type passwords yourself)
|
|
27
|
+
3. **Multiple roles?**: Are there different user roles to test? (admin, user, viewer, etc.)
|
|
28
|
+
4. **Existing UAT document**: Check if `docs/uat/UAT_TEMPLATE.md` exists. If it does, ask: "I found your UAT scenarios. Should I test against these, or do a full exploratory pass?"
|
|
29
|
+
5. **Ground truth documents**: Do you have source documents that the app's outputs should be evaluated against? (e.g., a dataset the app should parse correctly, a document it should analyze accurately)
|
|
30
|
+
6. **Scope**: Test ALL pages/endpoints, or specific ones?
|
|
31
|
+
7. **Server logs**: How do I check server logs when errors occur? (e.g., terminal output, `docker logs`, cloud logging command)
|
|
32
|
+
|
|
33
|
+
## Step 3: Testing Rules
|
|
34
|
+
|
|
35
|
+
### Rule 1: Test Every Interactive Element
|
|
36
|
+
For every page or endpoint:
|
|
37
|
+
- Every button, link, tab, toggle, dropdown, filter
|
|
38
|
+
- Every form (fill, submit, check validation and error states)
|
|
39
|
+
- Every export/download (verify correct file format for the content type)
|
|
40
|
+
- Every AI/ML feature (verify output quality, not just that it runs)
|
|
41
|
+
- Every modal/dialog (open, interact, close)
|
|
42
|
+
- Every navigation path (sidebar, breadcrumbs, back button)
|
|
43
|
+
|
|
44
|
+
For API-only projects:
|
|
45
|
+
- Every endpoint (all HTTP methods)
|
|
46
|
+
- Every query parameter and request body variation
|
|
47
|
+
- Authentication and authorization on each endpoint
|
|
48
|
+
- Error responses (400, 401, 403, 404, 422, 500)
|
|
49
|
+
- Response schema validation
|
|
50
|
+
|
|
51
|
+
### Rule 2: Verify Output Quality
|
|
52
|
+
Do NOT just check if features respond. Verify the CONTENT:
|
|
53
|
+
- Compare outputs against ground truth documents (if provided)
|
|
54
|
+
- Compare against existing UAT scenarios in `docs/uat/UAT_TEMPLATE.md` (if they exist)
|
|
55
|
+
- Flag hallucinated data, missing findings, incorrect results
|
|
56
|
+
- If a feature says "0 results" for input that clearly has results, that is CRITICAL
|
|
57
|
+
- Check that outputs reference actual data, not generic boilerplate
|
|
58
|
+
|
|
59
|
+
### Rule 3: Fix Bugs in Parallel
|
|
60
|
+
When a bug is found:
|
|
61
|
+
- Log it immediately in the results file with severity (Critical / High / Medium / Low)
|
|
62
|
+
- If the bug is in the codebase and fixable: spawn a background agent to fix it while you continue testing
|
|
63
|
+
- Do NOT stop testing to fix bugs unless they completely block further testing — except when the 15+ bug quality gate in Rule 4 is met (then stop immediately, save state, list all bugs, and generate the resume prompt)
|
|
64
|
+
- Track fix status: Found, Fixing, Fixed, Wont Fix
|
|
65
|
+
|
|
66
|
+
### Rule 4: Quality Gate (Overrides Rule 3) + Screenshot and Evidence Strategy
|
|
67
|
+
- **Bugs 0-10**: Screenshots of failures AND key milestones (page loads, successful operations)
|
|
68
|
+
- **Bugs 11-15**: Screenshots on FAILURES only. Use text-based page reads for passes.
|
|
69
|
+
- **Bugs 15+**: STOP TESTING IMMEDIATELY (this overrides Rule 3). Save state, list all bugs found so far, and generate the resume prompt before continuing any further work.
|
|
70
|
+
|
|
71
|
+
### Rule 5: Save Progress Continuously
|
|
72
|
+
- **Every 3-4 pages or endpoints**: Write results to `docs/sessions/live-uat-YYYY-MM-DD.md`
|
|
73
|
+
- **Every bug**: Update the bug table immediately
|
|
74
|
+
- **At ~70% context usage**: Proactively save ALL results, generate a self-contained resume prompt, and tell the user where to find it
|
|
75
|
+
|
|
76
|
+
### Rule 6: Check Server Logs on Every Error
|
|
77
|
+
On any 500, timeout, or unexpected behavior:
|
|
78
|
+
- Run the log check command the user provided
|
|
79
|
+
- Include error details in the bug report
|
|
80
|
+
- Note the timestamp and endpoint
|
|
81
|
+
|
|
82
|
+
### Rule 7: Create Test Data When Needed
|
|
83
|
+
If a feature requires data that doesn't exist:
|
|
84
|
+
- Create it (add a record, upload a file, seed data)
|
|
85
|
+
- Don't skip testing because data is missing
|
|
86
|
+
- Document what test data you created so it can be cleaned up
|
|
87
|
+
|
|
88
|
+
### Rule 8: Quality Audit
|
|
89
|
+
Before marking any feature PASS, verify:
|
|
90
|
+
- Destructive actions use confirmation modals (not browser `confirm()`)
|
|
91
|
+
- Forms have validation and clear error messages
|
|
92
|
+
- Loading states are present (skeletons or spinners)
|
|
93
|
+
- Empty states have descriptions and call-to-action buttons
|
|
94
|
+
- Exports use the correct format for the content type (e.g., reports = PDF/DOCX, data = CSV/XLSX)
|
|
95
|
+
|
|
96
|
+
### Rule 9: Business Logic Verification
|
|
97
|
+
Before testing, read the source code for business rules. For each rule found:
|
|
98
|
+
- Test the exact boundary values (at threshold, one above, one below)
|
|
99
|
+
- Verify computed outputs match what the code should produce
|
|
100
|
+
- Example: if code says `if (total > 100) applyDiscount(0.1)`, test with total=99.99, 100.00, 100.01
|
|
101
|
+
- Log the source file and line for each business rule tested
|
|
102
|
+
|
|
103
|
+
### Rule 10: Data Flow / CRUD Lifecycle Testing
|
|
104
|
+
For every entity type in the app (users, orders, posts, etc.):
|
|
105
|
+
1. **Create** an item with valid data, verify it appears in listings
|
|
106
|
+
2. **Read** the item detail page/endpoint, verify all fields are correct
|
|
107
|
+
3. **Update** the item, verify changes persist after page reload
|
|
108
|
+
4. **Delete** the item, verify it disappears from all listings and related pages
|
|
109
|
+
5. Test cascade effects: deleting a parent should handle children correctly
|
|
110
|
+
|
|
111
|
+
### Rule 11: Regression Tracking
|
|
112
|
+
Check if a previous live-uat session exists (`docs/sessions/live-uat-*.md`):
|
|
113
|
+
- If yes, load the previous bug table and results
|
|
114
|
+
- After testing, compare: flag any previously-passing features that now fail as **REGRESSION**
|
|
115
|
+
- Flag any previously-fixed bugs that have returned as **REGRESSION: BUG RETURNED**
|
|
116
|
+
- Include a regression summary section in the results
|
|
117
|
+
|
|
118
|
+
## Step 4: Testing Workflow
|
|
119
|
+
|
|
120
|
+
### Phase 1: Pre-Flight
|
|
121
|
+
1. Verify the app URL is accessible
|
|
122
|
+
2. Get browser tab or API client ready
|
|
123
|
+
3. Login (let user type passwords)
|
|
124
|
+
4. Verify the app loads correctly
|
|
125
|
+
|
|
126
|
+
### Phase 2: Systematic Testing
|
|
127
|
+
**For frontend apps** — test page by page:
|
|
128
|
+
1. Navigate to page, verify it loads
|
|
129
|
+
2. Read page content, note what is displayed
|
|
130
|
+
3. Click every tab, verify content changes
|
|
131
|
+
4. Click every button, verify behavior
|
|
132
|
+
5. Test every form: fill, submit, verify
|
|
133
|
+
6. Test every filter/search, verify results
|
|
134
|
+
7. Test every export/download, verify format
|
|
135
|
+
8. Test every AI feature, verify output against ground truth
|
|
136
|
+
9. Log PASS or FAIL with what you observed
|
|
137
|
+
|
|
138
|
+
**For API-only apps** — test endpoint by endpoint:
|
|
139
|
+
1. Send request, verify response status and schema
|
|
140
|
+
2. Test with valid data (happy path)
|
|
141
|
+
3. Test with invalid data (validation errors)
|
|
142
|
+
4. Test without auth (should get 401)
|
|
143
|
+
5. Test with wrong role (should get 403)
|
|
144
|
+
6. Test edge cases (empty body, large payload, special characters)
|
|
145
|
+
7. Log PASS or FAIL with response details
|
|
146
|
+
|
|
147
|
+
### Phase 3: Business Logic Verification
|
|
148
|
+
1. Read source code for business rules (see Rule 9)
|
|
149
|
+
2. For each rule, test boundary values and computed expected outputs
|
|
150
|
+
3. If `docs/uat/BUSINESS_RULES.md` exists (from `/generate-uat`), use it as the test plan
|
|
151
|
+
4. Log each rule tested with: source file, input, expected output, actual output, PASS/FAIL
|
|
152
|
+
|
|
153
|
+
### Phase 4: Data Flow / CRUD Lifecycle
|
|
154
|
+
1. Identify all entity types from the database schema or API routes
|
|
155
|
+
2. For each entity: run the Create -> Read -> Update -> Delete cycle (see Rule 10)
|
|
156
|
+
3. Test cross-page visibility: create on page A, verify on page B
|
|
157
|
+
4. Test cascade deletes and referential integrity
|
|
158
|
+
|
|
159
|
+
### Phase 5: Cross-Cutting Concerns
|
|
160
|
+
- Role-based access: login as different roles, verify permissions
|
|
161
|
+
- AI/ML features: test with real data, verify accuracy
|
|
162
|
+
- Reports and exports: generate every type, verify content
|
|
163
|
+
- Settings and admin: test every configuration option
|
|
164
|
+
|
|
165
|
+
### Phase 6: Regression Check
|
|
166
|
+
1. Load previous live-uat results if they exist (see Rule 11)
|
|
167
|
+
2. Compare current results against previous pass/fail status
|
|
168
|
+
3. Flag any regressions prominently
|
|
169
|
+
|
|
170
|
+
### Phase 7: Server Health
|
|
171
|
+
- Check server logs for errors generated during testing
|
|
172
|
+
- Report any unhandled exceptions or warnings
|
|
173
|
+
|
|
174
|
+
## Step 5: Results Format
|
|
175
|
+
|
|
176
|
+
Write results to `docs/sessions/live-uat-YYYY-MM-DD.md`:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
# Live UAT Results — [Date]
|
|
180
|
+
|
|
181
|
+
## Environment
|
|
182
|
+
- URL: [app url]
|
|
183
|
+
- Stack: [detected stack]
|
|
184
|
+
- Roles tested: [list]
|
|
185
|
+
|
|
186
|
+
## Page/Endpoint: [Name]
|
|
187
|
+
| # | Action | Result | Notes |
|
|
188
|
+
|---|--------|--------|-------|
|
|
189
|
+
| 1 | Page loads | PASS | Shows expected content |
|
|
190
|
+
| 2 | Submit form | FAIL | Bug #3: validation missing |
|
|
191
|
+
|
|
192
|
+
## Bugs Found
|
|
193
|
+
| # | Bug | Severity | Location | Status |
|
|
194
|
+
|---|-----|----------|----------|--------|
|
|
195
|
+
| 1 | Missing validation on email | Medium | /signup | Fixed |
|
|
196
|
+
| 2 | AI returns empty results | Critical | /analysis | Fixing |
|
|
197
|
+
|
|
198
|
+
## Output Quality (if applicable)
|
|
199
|
+
| Feature | Expected | Actual | Score |
|
|
200
|
+
|---------|----------|--------|-------|
|
|
201
|
+
| Data parsing | 26 items | 24 found | 8/10 |
|
|
202
|
+
| Report generation | Full report | Missing section 3 | 6/10 |
|
|
203
|
+
|
|
204
|
+
## Business Logic Verification
|
|
205
|
+
| # | Rule | Source | Input | Expected | Actual | Result |
|
|
206
|
+
|---|------|--------|-------|----------|--------|--------|
|
|
207
|
+
| 1 | Discount > $100 | src/order.js:45 | $150 | $135 | $135 | PASS |
|
|
208
|
+
| 2 | Admin-only endpoint | src/api/admin.js:12 | role=user | 403 | 200 | FAIL |
|
|
209
|
+
|
|
210
|
+
## Data Flow / CRUD Lifecycle
|
|
211
|
+
| Entity | Create | Read | Update | Delete | Cascade | Notes |
|
|
212
|
+
|--------|--------|------|--------|--------|---------|-------|
|
|
213
|
+
| User | PASS | PASS | PASS | FAIL | N/A | Bug #5 |
|
|
214
|
+
| Order | PASS | PASS | PASS | PASS | PASS | |
|
|
215
|
+
|
|
216
|
+
## Regressions (vs previous session)
|
|
217
|
+
| Feature | Previous | Current | Status |
|
|
218
|
+
|---------|----------|---------|--------|
|
|
219
|
+
| Login flow | PASS | PASS | Stable |
|
|
220
|
+
| Export PDF | PASS | FAIL | REGRESSION |
|
|
221
|
+
|
|
222
|
+
## Summary
|
|
223
|
+
- Total actions tested: X | PASS: X | FAIL: X
|
|
224
|
+
- Business rules tested: X | PASS: X | FAIL: X
|
|
225
|
+
- CRUD lifecycles tested: X | PASS: X | FAIL: X
|
|
226
|
+
- Regressions found: X
|
|
227
|
+
- Bugs: X (Critical: X, High: X, Medium: X, Low: X)
|
|
228
|
+
- Fixed during testing: X | Remaining: X
|
|
229
|
+
- Recommendation: Ship / Fix and retest / Needs rework
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Step 6: Session Resume Prompt
|
|
233
|
+
|
|
234
|
+
When saving a resume prompt (on pause, bug overflow, or context limit), write to `docs/sessions/live-uat-resume-YYYY-MM-DD.md`:
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
# Resume Live UAT — [Date] Session [N+1]
|
|
238
|
+
|
|
239
|
+
## Context
|
|
240
|
+
Read these files first:
|
|
241
|
+
1. docs/sessions/live-uat-YYYY-MM-DD.md — results so far
|
|
242
|
+
2. docs/uat/UAT_TEMPLATE.md — test scenarios (if exists)
|
|
243
|
+
|
|
244
|
+
## Tested So Far
|
|
245
|
+
[list pages/endpoints with PASS/FAIL counts]
|
|
246
|
+
|
|
247
|
+
## Remaining
|
|
248
|
+
[list untested pages/endpoints]
|
|
249
|
+
|
|
250
|
+
## Open Bugs
|
|
251
|
+
[full bug table with status]
|
|
252
|
+
|
|
253
|
+
## Test Data Created
|
|
254
|
+
[list of data created during testing, for cleanup]
|
|
255
|
+
|
|
256
|
+
## Login
|
|
257
|
+
User will re-enter passwords
|
|
258
|
+
|
|
259
|
+
## App URL
|
|
260
|
+
[url]
|
|
261
|
+
|
|
262
|
+
## Resume From
|
|
263
|
+
[exact page/endpoint and step number]
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
**Ready to start. Tell me the app URL, how to login, and whether you have ground truth documents to test against.**
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
Analyze and optimize CLAUDE.md for this project.
|
|
2
2
|
|
|
3
|
+
## Intent Contract
|
|
4
|
+
|
|
5
|
+
Before invoking any agent, construct this block and pass it as context:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
INTENT_CONTRACT:
|
|
9
|
+
INTENT: "[User's original request verbatim]"
|
|
10
|
+
SCOPE: "[Files/areas to examine]"
|
|
11
|
+
SUCCESS_CRITERIA: "[What done looks like]"
|
|
12
|
+
INTENT_HASH: "[First 8 chars of SHA256(INTENT|SCOPE|SUCCESS_CRITERIA)]"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Every agent invocation MUST include this block. If an agent's output does not echo back the INTENT_HASH, its results are considered unverified.
|
|
16
|
+
|
|
3
17
|
## Instructions
|
|
4
18
|
|
|
5
19
|
1. Read the current CLAUDE.md and measure its size (line count).
|
|
@@ -27,5 +41,5 @@ Analyze and optimize CLAUDE.md for this project.
|
|
|
27
41
|
## Rules
|
|
28
42
|
- Do NOT modify any files until I explicitly approve the proposal
|
|
29
43
|
- Show the current line count and target line count
|
|
30
|
-
- Preserve all information
|
|
44
|
+
- Preserve all information. Nothing gets deleted, only relocated
|
|
31
45
|
- Each skill file needs frontmatter: name, description, and relevant file patterns
|
|
@@ -16,6 +16,6 @@ Invoke the **planner** agent to create a comprehensive implementation plan befor
|
|
|
16
16
|
## Integration
|
|
17
17
|
|
|
18
18
|
After planning, use these commands:
|
|
19
|
-
- `/tdd`
|
|
20
|
-
- `/build-fix`
|
|
21
|
-
- `/code-review`
|
|
19
|
+
- `/tdd` - implement with test-driven development
|
|
20
|
+
- `/build-fix` - fix any build errors that come up
|
|
21
|
+
- `/code-review` - review the completed implementation
|
|
@@ -1,19 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
Prepare a pull request. Quality checks (lint, tests, code review, security) already ran at commit time via the pre-commit gate. This command handles PR-specific preparation.
|
|
2
|
+
|
|
3
|
+
## Intent Contract
|
|
4
|
+
|
|
5
|
+
Before invoking any agent, construct this block and pass it as context:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
INTENT_CONTRACT:
|
|
9
|
+
INTENT: "[User's original request verbatim]"
|
|
10
|
+
SCOPE: "[Files/areas to examine]"
|
|
11
|
+
SUCCESS_CRITERIA: "[What done looks like]"
|
|
12
|
+
INTENT_HASH: "[First 8 chars of SHA256(INTENT|SCOPE|SUCCESS_CRITERIA)]"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Every agent invocation MUST include this block. If an agent's output does not echo back the INTENT_HASH, its results are considered unverified.
|
|
16
|
+
|
|
17
|
+
## Step 1: Verify Commit State
|
|
18
|
+
|
|
19
|
+
1. Check that all changes are committed (no uncommitted changes)
|
|
20
|
+
2. Check that the branch is pushed to remote
|
|
21
|
+
3. If there are uncommitted changes, tell the user to commit first (the pre-commit gate will handle quality checks)
|
|
22
|
+
|
|
23
|
+
## Step 2: Review the Full PR Diff
|
|
24
|
+
|
|
25
|
+
1. Get the base branch: `git rev-parse --abbrev-ref HEAD@{upstream} 2>/dev/null || echo main`
|
|
26
|
+
2. Get the full diff: `git diff <base-branch>...HEAD`
|
|
27
|
+
3. Get all commits in this branch: `git log <base-branch>..HEAD --oneline`
|
|
28
|
+
4. Review the full diff for:
|
|
29
|
+
- Coherence: do all changes serve the same purpose?
|
|
30
|
+
- Completeness: are there any half-finished features?
|
|
31
|
+
- Any `.env` files, secrets, or debug code that slipped through
|
|
32
|
+
|
|
33
|
+
## Step 3: Generate PR Description
|
|
34
|
+
|
|
35
|
+
Based on the diff and commit history, generate:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
## Summary
|
|
39
|
+
<1-3 bullet points describing what changed and why>
|
|
40
|
+
|
|
41
|
+
## Changes
|
|
42
|
+
<grouped list of changes by area>
|
|
43
|
+
|
|
44
|
+
## Test plan
|
|
45
|
+
<bulleted checklist of what to test>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Step 4: Create PR
|
|
49
|
+
|
|
50
|
+
Use `gh pr create` with the generated title and description.
|
|
51
|
+
If the user hasn't pushed yet, push first with `git push -u origin <branch>`.
|
|
52
|
+
|
|
53
|
+
## Output
|
|
54
|
+
|
|
55
|
+
- PR URL
|
|
56
|
+
- Summary of what was included
|
|
57
|
+
- Any warnings (large diff, many files, etc.)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Run the product-strategist agent to evaluate this project against real competitors and industry best practices.
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
The product-strategist agent will:
|
|
6
|
+
1. Read your project structure, CLAUDE.md, and any product docs
|
|
7
|
+
2. **Web search** for 5-7 direct competitors and best-in-class examples
|
|
8
|
+
3. Evaluate your project against them across DX, API design, testing, security, observability, deployment, and docs
|
|
9
|
+
4. Score each category: AHEAD, ON PAR, or BEHIND with specific competitor benchmarks
|
|
10
|
+
5. Recommend strategic improvements with a prioritized roadmap
|
|
11
|
+
|
|
12
|
+
## How To Use
|
|
13
|
+
|
|
14
|
+
Run this command. The agent will ask no questions — it researches autonomously and returns a full competitive analysis with actionable recommendations.
|
|
15
|
+
|
|
16
|
+
## When To Use
|
|
17
|
+
|
|
18
|
+
- Before planning a new major feature (to avoid building what competitors already do better)
|
|
19
|
+
- Before a launch or public release (to identify gaps)
|
|
20
|
+
- Quarterly, to track how your project compares to the evolving landscape
|
|
21
|
+
- When deciding between build vs. buy for a capability
|
|
@@ -2,8 +2,8 @@ Load a saved session file and orient before doing any work.
|
|
|
2
2
|
|
|
3
3
|
## Process
|
|
4
4
|
|
|
5
|
-
1. **Find the session file
|
|
6
|
-
2. **Read the entire file
|
|
5
|
+
1. **Find the session file**: Check `docs/sessions/` for the most recent `*-session.md` file
|
|
6
|
+
2. **Read the entire file**: Do not summarize yet
|
|
7
7
|
3. **Present a briefing** in this format:
|
|
8
8
|
|
|
9
9
|
```
|
|
@@ -33,18 +33,18 @@ NEXT STEP:
|
|
|
33
33
|
Ready to continue. What would you like to do?
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
4. **WAIT for the user
|
|
36
|
+
4. **WAIT for the user**. Do NOT start working automatically
|
|
37
37
|
|
|
38
38
|
## Edge Cases
|
|
39
39
|
|
|
40
|
-
- **No session files found
|
|
41
|
-
- **Session references deleted files
|
|
42
|
-
- **Session is > 7 days old
|
|
43
|
-
- **Empty or malformed file
|
|
40
|
+
- **No session files found**: Tell the user to run `/save-session` first
|
|
41
|
+
- **Session references deleted files**: Note "file.ts referenced but not found on disk"
|
|
42
|
+
- **Session is > 7 days old**: Note "This session is N days old, things may have changed"
|
|
43
|
+
- **Empty or malformed file**: Report and suggest creating a new session
|
|
44
44
|
|
|
45
45
|
## Rules
|
|
46
46
|
|
|
47
|
-
- Never modify the session file
|
|
48
|
-
- Never skip the "What Not To Retry" section
|
|
47
|
+
- Never modify the session file. It's a read-only historical record
|
|
48
|
+
- Never skip the "What Not To Retry" section. It's the most important
|
|
49
49
|
- Always wait for the user before starting work
|
|
50
|
-
- If the next step is defined and the user says "continue"
|
|
50
|
+
- If the next step is defined and the user says "continue", proceed with that exact step
|