@vpxa/aikit 0.1.73 → 0.1.75
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/package.json +9 -1
- package/packages/cli/dist/index.js +2 -2
- package/packages/cli/dist/{init-D_OGLUN1.js → init-CuRXmyD9.js} +4 -4
- package/packages/cli/dist/scaffold-WMQ2uQ48.js +2 -0
- package/packages/cli/dist/{templates-DJ7EC5vw.js → templates-ArdAVWoY.js} +13 -3
- package/packages/cli/dist/user-vbJwa7x2.js +5 -0
- package/packages/dashboard/dist/assets/index-C6D-PCp0.js.map +1 -1
- package/packages/flows/dist/index.d.ts +29 -0
- package/packages/flows/dist/index.js +1 -1
- package/packages/server/dist/index.js +1 -1
- package/packages/server/dist/{server-B9Mx1aK-.js → server-CVhVH5cT.js} +127 -127
- package/packages/tools/dist/index.d.ts +19 -1
- package/packages/tools/dist/index.js +39 -39
- package/scaffold/dist/adapters/claude-code.mjs +4 -0
- package/scaffold/dist/adapters/copilot.mjs +75 -0
- package/scaffold/dist/adapters/flows.mjs +1 -0
- package/scaffold/dist/adapters/skills.mjs +1 -0
- package/scaffold/dist/compiled/flows-data.mjs +1429 -0
- package/scaffold/dist/compiled/skills-data.mjs +9951 -0
- package/scaffold/dist/definitions/agents.mjs +9 -0
- package/scaffold/{definitions → dist/definitions}/bodies.mjs +6 -229
- package/scaffold/dist/definitions/exclusions.mjs +1 -0
- package/scaffold/dist/definitions/hooks.mjs +1 -0
- package/scaffold/dist/definitions/models.mjs +1 -0
- package/scaffold/dist/definitions/plugins.mjs +1 -0
- package/scaffold/{definitions → dist/definitions}/prompts.mjs +9 -149
- package/scaffold/{definitions → dist/definitions}/protocols.mjs +9 -37
- package/scaffold/dist/definitions/tools.mjs +1 -0
- package/packages/cli/dist/scaffold-CJwkHf-q.js +0 -2
- package/packages/cli/dist/user-BEmVW8Tp.js +0 -5
- package/scaffold/adapters/claude-code.mjs +0 -73
- package/scaffold/adapters/copilot.mjs +0 -292
- package/scaffold/definitions/agents.mjs +0 -266
- package/scaffold/definitions/hooks.mjs +0 -43
- package/scaffold/definitions/models.mjs +0 -84
- package/scaffold/definitions/plugins.mjs +0 -147
- package/scaffold/definitions/tools.mjs +0 -250
- package/scaffold/flows/_epilogue/steps/docs-sync/README.md +0 -120
- package/scaffold/flows/aikit-advanced/README.md +0 -70
- package/scaffold/flows/aikit-advanced/flow.json +0 -69
- package/scaffold/flows/aikit-advanced/steps/design/README.md +0 -178
- package/scaffold/flows/aikit-advanced/steps/execute/README.md +0 -145
- package/scaffold/flows/aikit-advanced/steps/plan/README.md +0 -122
- package/scaffold/flows/aikit-advanced/steps/spec/README.md +0 -121
- package/scaffold/flows/aikit-advanced/steps/task/README.md +0 -119
- package/scaffold/flows/aikit-advanced/steps/verify/README.md +0 -145
- package/scaffold/flows/aikit-basic/README.md +0 -51
- package/scaffold/flows/aikit-basic/flow.json +0 -45
- package/scaffold/flows/aikit-basic/steps/assess/README.md +0 -109
- package/scaffold/flows/aikit-basic/steps/design/README.md +0 -116
- package/scaffold/flows/aikit-basic/steps/implement/README.md +0 -131
- package/scaffold/flows/aikit-basic/steps/verify/README.md +0 -123
- package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +0 -132
- package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +0 -132
- package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +0 -112
- package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +0 -112
- package/scaffold/general/agents/Debugger.agent.md +0 -412
- package/scaffold/general/agents/Documenter.agent.md +0 -468
- package/scaffold/general/agents/Explorer.agent.md +0 -76
- package/scaffold/general/agents/Frontend.agent.md +0 -440
- package/scaffold/general/agents/Implementer.agent.md +0 -425
- package/scaffold/general/agents/Orchestrator.agent.md +0 -452
- package/scaffold/general/agents/Planner.agent.md +0 -481
- package/scaffold/general/agents/README.md +0 -57
- package/scaffold/general/agents/Refactor.agent.md +0 -435
- package/scaffold/general/agents/Researcher-Alpha.agent.md +0 -151
- package/scaffold/general/agents/Researcher-Beta.agent.md +0 -152
- package/scaffold/general/agents/Researcher-Delta.agent.md +0 -153
- package/scaffold/general/agents/Researcher-Gamma.agent.md +0 -152
- package/scaffold/general/agents/Security.agent.md +0 -433
- package/scaffold/general/agents/_shared/architect-reviewer-base.md +0 -104
- package/scaffold/general/agents/_shared/code-agent-base.md +0 -366
- package/scaffold/general/agents/_shared/code-reviewer-base.md +0 -87
- package/scaffold/general/agents/_shared/decision-protocol.md +0 -27
- package/scaffold/general/agents/_shared/forge-protocol.md +0 -90
- package/scaffold/general/agents/_shared/researcher-base.md +0 -114
- package/scaffold/general/agents/templates/adr-template.md +0 -28
- package/scaffold/general/agents/templates/execution-state.md +0 -26
- package/scaffold/general/prompts/aikit-ask.prompt.md +0 -13
- package/scaffold/general/prompts/aikit-debug.prompt.md +0 -15
- package/scaffold/general/prompts/aikit-design.prompt.md +0 -15
- package/scaffold/general/prompts/aikit-flow-add.prompt.md +0 -84
- package/scaffold/general/prompts/aikit-flow-create.prompt.md +0 -80
- package/scaffold/general/prompts/aikit-flow-manage.prompt.md +0 -24
- package/scaffold/general/prompts/aikit-implement.prompt.md +0 -17
- package/scaffold/general/prompts/aikit-plan.prompt.md +0 -15
- package/scaffold/general/prompts/aikit-review.prompt.md +0 -24
- package/scaffold/general/skills/adr-skill/SKILL.md +0 -335
- package/scaffold/general/skills/adr-skill/assets/templates/adr-madr.md +0 -89
- package/scaffold/general/skills/adr-skill/assets/templates/adr-readme.md +0 -20
- package/scaffold/general/skills/adr-skill/assets/templates/adr-simple.md +0 -46
- package/scaffold/general/skills/adr-skill/references/adr-conventions.md +0 -95
- package/scaffold/general/skills/adr-skill/references/examples.md +0 -193
- package/scaffold/general/skills/adr-skill/references/review-checklist.md +0 -77
- package/scaffold/general/skills/adr-skill/references/template-variants.md +0 -52
- package/scaffold/general/skills/adr-skill/scripts/bootstrap_adr.js +0 -259
- package/scaffold/general/skills/adr-skill/scripts/new_adr.js +0 -391
- package/scaffold/general/skills/adr-skill/scripts/set_adr_status.js +0 -169
- package/scaffold/general/skills/aikit/SKILL.md +0 -754
- package/scaffold/general/skills/brainstorming/SKILL.md +0 -265
- package/scaffold/general/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
- package/scaffold/general/skills/c4-architecture/SKILL.md +0 -389
- package/scaffold/general/skills/c4-architecture/references/advanced-patterns.md +0 -552
- package/scaffold/general/skills/c4-architecture/references/c4-syntax.md +0 -510
- package/scaffold/general/skills/c4-architecture/references/common-mistakes.md +0 -437
- package/scaffold/general/skills/c4-architecture/references/html-design-system.md +0 -337
- package/scaffold/general/skills/c4-architecture/references/html-template.html +0 -627
- package/scaffold/general/skills/docs/SKILL.md +0 -553
- package/scaffold/general/skills/docs/references/diataxis-anti-patterns.md +0 -147
- package/scaffold/general/skills/docs/references/diataxis-compass.md +0 -123
- package/scaffold/general/skills/docs/references/diataxis-quadrants.md +0 -192
- package/scaffold/general/skills/docs/references/diataxis-quality.md +0 -76
- package/scaffold/general/skills/docs/references/diataxis-templates.md +0 -120
- package/scaffold/general/skills/docs/references/flow-artifacts-guide.md +0 -70
- package/scaffold/general/skills/docs/references/project-knowledge-gotchas.md +0 -32
- package/scaffold/general/skills/docs/references/project-knowledge-templates.md +0 -281
- package/scaffold/general/skills/docs/references/project-knowledge-workflow.md +0 -80
- package/scaffold/general/skills/frontend-design/SKILL.md +0 -237
- package/scaffold/general/skills/lesson-learned/SKILL.md +0 -113
- package/scaffold/general/skills/lesson-learned/references/anti-patterns.md +0 -55
- package/scaffold/general/skills/lesson-learned/references/se-principles.md +0 -109
- package/scaffold/general/skills/multi-agents-development/SKILL.md +0 -448
- package/scaffold/general/skills/multi-agents-development/architecture-review-prompt.md +0 -81
- package/scaffold/general/skills/multi-agents-development/code-quality-review-prompt.md +0 -91
- package/scaffold/general/skills/multi-agents-development/implementer-prompt.md +0 -93
- package/scaffold/general/skills/multi-agents-development/parallel-dispatch-example.md +0 -167
- package/scaffold/general/skills/multi-agents-development/spec-review-prompt.md +0 -81
- package/scaffold/general/skills/present/SKILL.md +0 -616
- package/scaffold/general/skills/react/SKILL.md +0 -309
- package/scaffold/general/skills/repo-access/SKILL.md +0 -178
- package/scaffold/general/skills/repo-access/references/error-patterns.md +0 -116
- package/scaffold/general/skills/repo-access/references/platform-matrix.md +0 -142
- package/scaffold/general/skills/requirements-clarity/SKILL.md +0 -333
- package/scaffold/general/skills/session-handoff/SKILL.md +0 -199
- package/scaffold/general/skills/session-handoff/references/handoff-template.md +0 -139
- package/scaffold/general/skills/session-handoff/references/resume-checklist.md +0 -80
- package/scaffold/general/skills/session-handoff/scripts/check_staleness.js +0 -269
- package/scaffold/general/skills/session-handoff/scripts/create_handoff.js +0 -299
- package/scaffold/general/skills/session-handoff/scripts/list_handoffs.js +0 -113
- package/scaffold/general/skills/session-handoff/scripts/validate_handoff.js +0 -241
- package/scaffold/general/skills/typescript/SKILL.md +0 -405
- package/scaffold/generate.mjs +0 -82
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: execute
|
|
3
|
-
description: Implement all tasks from the task breakdown, dispatching agents in parallel where possible.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Execution
|
|
7
|
-
|
|
8
|
-
## Prerequisites Check
|
|
9
|
-
|
|
10
|
-
Before starting this step, verify:
|
|
11
|
-
- [ ] Task breakdown approved with valid task graph
|
|
12
|
-
- [ ] `{{artifacts_path}}/tasks.md` exists with defined batches and dependencies
|
|
13
|
-
|
|
14
|
-
If prerequisites are NOT met -> **backtrack to task step** (`flow_step({ action: 'redo' })` on previous step)
|
|
15
|
-
|
|
16
|
-
## Purpose
|
|
17
|
-
|
|
18
|
-
Execute all tasks from the breakdown, dispatching implementation agents in batches for maximum parallelism while maintaining correctness.
|
|
19
|
-
|
|
20
|
-
## Inputs
|
|
21
|
-
|
|
22
|
-
- `{{artifacts_path}}/tasks.md` — the atomic task list with dependencies and agent assignments
|
|
23
|
-
|
|
24
|
-
## Process
|
|
25
|
-
|
|
26
|
-
1. **Load tasks** — Read task graph, dependencies, and parallelism map
|
|
27
|
-
2. **Execute by batch** — For each batch in the parallelism map:
|
|
28
|
-
a. Dispatch assigned agents in parallel (different files = safe parallelism)
|
|
29
|
-
b. Each agent receives: task scope, affected files, acceptance criteria, relevant code context via `compact()`/`digest()`
|
|
30
|
-
c. Wait for all agents in batch to complete
|
|
31
|
-
d. Run `check({})` + `test_run({})` after each batch
|
|
32
|
-
e. Fix any failures before proceeding to next batch
|
|
33
|
-
3. **Track progress** — Update task checkboxes as each completes
|
|
34
|
-
4. **Handle failures** — If an agent reports `BLOCKED` or `NEEDS_CONTEXT`:
|
|
35
|
-
- Max 2 retries per task with refined context
|
|
36
|
-
- If still blocked, escalate to user
|
|
37
|
-
5. **Final validation** — After all batches: `check({})` + `test_run({})` must pass
|
|
38
|
-
|
|
39
|
-
## Outputs
|
|
40
|
-
|
|
41
|
-
Write `{{artifacts_path}}/progress.md` to disk. **You MUST create this file** using `create_file` or equivalent — do not just present content in chat.
|
|
42
|
-
|
|
43
|
-
Template:
|
|
44
|
-
|
|
45
|
-
```markdown
|
|
46
|
-
# Execution Progress: <feature title>
|
|
47
|
-
|
|
48
|
-
## Task Status
|
|
49
|
-
- [x] T1.1: <description> — DONE
|
|
50
|
-
- [x] T1.2: <description> — DONE
|
|
51
|
-
- [x] T2.1: <description> — DONE
|
|
52
|
-
- [ ] T2.2: <description> — IN PROGRESS
|
|
53
|
-
...
|
|
54
|
-
|
|
55
|
-
## Changes Made
|
|
56
|
-
| File | Change | Task |
|
|
57
|
-
|------|--------|------|
|
|
58
|
-
| <file> | <description> | T1.1 |
|
|
59
|
-
| ... | ... | ... |
|
|
60
|
-
|
|
61
|
-
## Tests Added/Modified
|
|
62
|
-
<list of test files and what they cover>
|
|
63
|
-
|
|
64
|
-
## Validation
|
|
65
|
-
- check: PASS/FAIL
|
|
66
|
-
- test_run: PASS/FAIL (<N> passed, <M> failed)
|
|
67
|
-
|
|
68
|
-
## Deviations
|
|
69
|
-
<any changes from the task plan and why>
|
|
70
|
-
|
|
71
|
-
## Blocked Items
|
|
72
|
-
<items that needed user intervention, if any>
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Agents
|
|
76
|
-
|
|
77
|
-
| Agent | Role |
|
|
78
|
-
|-------|------|
|
|
79
|
-
| **Orchestrator** | Coordinates batch execution, handles failures and retries |
|
|
80
|
-
| **Implementer** | Primary code writer for backend, logic, and infrastructure tasks |
|
|
81
|
-
| **Frontend** | UI/UX implementation for React components, styling, responsive design |
|
|
82
|
-
| **Refactor** | Code cleanup, restructuring, and pattern alignment tasks |
|
|
83
|
-
|
|
84
|
-
**Parallelism rules**:
|
|
85
|
-
- Read-only agents: unlimited parallelism
|
|
86
|
-
- File-modifying agents: parallel ONLY on completely different files
|
|
87
|
-
- Max 4 concurrent file-modifying agents
|
|
88
|
-
|
|
89
|
-
## Foundation Integration
|
|
90
|
-
|
|
91
|
-
Load these skills BEFORE executing this step:
|
|
92
|
-
|
|
93
|
-
| Skill | Purpose | When |
|
|
94
|
-
|-------|---------|------|
|
|
95
|
-
| `aikit` | Core MCP tools — search, analyze, remember, validate | Always (auto-loaded) |
|
|
96
|
-
| `present` | Rich rendering for any structured output — assessments, reports, comparisons, reviews, status boards, tables, charts, and all artifact content | Use for ANY output that benefits from rich rendering, not just dashboards |
|
|
97
|
-
| `multi-agents-development` | Dispatch templates, task decomposition, review pipeline patterns | Before dispatching any subagent |
|
|
98
|
-
| `brainstorming` | Structured ideation for design/creative decisions | Before any design choice or new feature exploration |
|
|
99
|
-
| `session-handoff` | Context preservation for long-running execution phases | When execution spans multiple sessions or context is filling |
|
|
100
|
-
|
|
101
|
-
### Presentation Rules
|
|
102
|
-
- Use `present` for **any output** that benefits from rich rendering — not limited to dashboards
|
|
103
|
-
- Assessments, reports, comparisons, reviews, status boards → `present({ format: "html" })`
|
|
104
|
-
- Tables, charts, progress tracking, code review findings → always present
|
|
105
|
-
- Artifact content and summaries → present with structured layout
|
|
106
|
-
- Only use plain text for brief confirmations and simple questions
|
|
107
|
-
|
|
108
|
-
### Orchestrator Dispatch Protocol
|
|
109
|
-
|
|
110
|
-
Follow the `multi-agents-development` skill patterns for dispatch:
|
|
111
|
-
|
|
112
|
-
1. **Independence Check** before parallelizing:
|
|
113
|
-
- Same files? → sequential
|
|
114
|
-
- Shared mutable state? → sequential
|
|
115
|
-
- Execution-order dependent? → sequential
|
|
116
|
-
- Need shared new types? → define contract first, then parallel
|
|
117
|
-
- All clear? → **parallel dispatch**
|
|
118
|
-
|
|
119
|
-
2. **Subagent Context Template** (each dispatch includes):
|
|
120
|
-
- **Scope**: exact files + boundary (do NOT touch)
|
|
121
|
-
- **Goal**: acceptance criteria, testable
|
|
122
|
-
- **Arch Context**: actual code snippets via `compact()`/`digest()`
|
|
123
|
-
- **Constraints**: patterns, conventions, anti-patterns
|
|
124
|
-
- **Self-Review**: checklist before declaring DONE
|
|
125
|
-
|
|
126
|
-
3. **Status Protocol**: `DONE` | `DONE_WITH_CONCERNS` | `NEEDS_CONTEXT` | `BLOCKED`
|
|
127
|
-
4. **Max 2 retries** per task — then escalate to user
|
|
128
|
-
|
|
129
|
-
## Completion Criteria
|
|
130
|
-
|
|
131
|
-
- [ ] All tasks marked completed
|
|
132
|
-
- [ ] `check({})` passes
|
|
133
|
-
- [ ] `test_run({})` passes
|
|
134
|
-
- [ ] No blocked items remaining
|
|
135
|
-
- [ ] `{{artifacts_path}}/progress.md` written
|
|
136
|
-
|
|
137
|
-
## Knowledge Capture
|
|
138
|
-
|
|
139
|
-
Before completing this step, persist important findings using `remember()`:
|
|
140
|
-
|
|
141
|
-
- **Implementation decisions**: Why specific approaches were chosen over alternatives
|
|
142
|
-
- **Patterns established**: New conventions or patterns that future code should follow
|
|
143
|
-
- **Gotchas encountered**: Edge cases, workarounds, or non-obvious behaviors discovered during execution
|
|
144
|
-
|
|
145
|
-
**Every step produces knowledge worth preserving.** If you discovered something that would help a future session, call `remember()` now.
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: plan
|
|
3
|
-
description: Analyze the codebase, design the architecture, and create a detailed implementation plan.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Planning
|
|
7
|
-
|
|
8
|
-
## Prerequisites Check
|
|
9
|
-
|
|
10
|
-
Before starting this step, verify:
|
|
11
|
-
- [ ] Specification approved with clarity score ≥90
|
|
12
|
-
- [ ] `{{artifacts_path}}/spec.md` exists and is complete
|
|
13
|
-
|
|
14
|
-
If prerequisites are NOT met → **backtrack to spec step** (`flow_step({ action: 'redo' })` on previous step)
|
|
15
|
-
|
|
16
|
-
## Purpose
|
|
17
|
-
|
|
18
|
-
Translate the specification into a concrete, phased implementation plan with architecture decisions, file-level scope, and dependency ordering.
|
|
19
|
-
|
|
20
|
-
## Inputs
|
|
21
|
-
|
|
22
|
-
- `{{artifacts_path}}/spec.md` — the validated specification
|
|
23
|
-
|
|
24
|
-
## Process
|
|
25
|
-
|
|
26
|
-
1. **Load spec** — Read and internalize all requirements and acceptance criteria
|
|
27
|
-
2. **Codebase analysis** — `scope_map({ task: "<feature>" })` to identify affected subsystems
|
|
28
|
-
3. **Deep dive** — `file_summary()` + `compact()` on each affected module
|
|
29
|
-
4. **Architecture design** — Decide on:
|
|
30
|
-
- Where new code lives (new files vs extensions)
|
|
31
|
-
- API surface changes
|
|
32
|
-
- Data model changes
|
|
33
|
-
- Integration patterns
|
|
34
|
-
5. **ADR for non-trivial decisions** — Use `adr-skill` for decisions that affect future development
|
|
35
|
-
6. **Phase decomposition** — Break work into 3–10 ordered phases, each independently testable
|
|
36
|
-
7. **Dependency graph** — Map which phases depend on others and which can parallelize
|
|
37
|
-
8. **Risk assessment** — Identify implementation risks per phase
|
|
38
|
-
|
|
39
|
-
## Outputs
|
|
40
|
-
|
|
41
|
-
Write `{{artifacts_path}}/plan.md` to disk. **You MUST create this file** using `create_file` or equivalent — do not just present content in chat.
|
|
42
|
-
|
|
43
|
-
Template:
|
|
44
|
-
|
|
45
|
-
```markdown
|
|
46
|
-
# Implementation Plan: <feature title>
|
|
47
|
-
|
|
48
|
-
## Architecture Overview
|
|
49
|
-
<high-level design with rationale>
|
|
50
|
-
|
|
51
|
-
## Affected Modules
|
|
52
|
-
| Module | Changes | Risk |
|
|
53
|
-
|--------|---------|------|
|
|
54
|
-
| <module> | <what changes> | low/medium/high |
|
|
55
|
-
|
|
56
|
-
## Phases
|
|
57
|
-
### Phase 1: <name>
|
|
58
|
-
- **Files**: <list>
|
|
59
|
-
- **Changes**: <description>
|
|
60
|
-
- **Tests**: <what to test>
|
|
61
|
-
- **Depends on**: none
|
|
62
|
-
- **Parallelizable with**: Phase 2
|
|
63
|
-
|
|
64
|
-
### Phase 2: <name>
|
|
65
|
-
...
|
|
66
|
-
|
|
67
|
-
## Architecture Decisions
|
|
68
|
-
- ADR-<N>: <title> — <chosen option and rationale>
|
|
69
|
-
|
|
70
|
-
## Risks
|
|
71
|
-
| Risk | Likelihood | Impact | Mitigation |
|
|
72
|
-
|------|-----------|--------|------------|
|
|
73
|
-
| <risk> | low/medium/high | <impact> | <mitigation> |
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Agents
|
|
77
|
-
|
|
78
|
-
| Agent | Role |
|
|
79
|
-
|-------|------|
|
|
80
|
-
| **Planner** | Creates comprehensive TDD implementation plans with phase decomposition |
|
|
81
|
-
| **Explorer** | Rapid codebase exploration for discovery of affected files and dependencies |
|
|
82
|
-
|
|
83
|
-
Use Explorer for initial breadth (file discovery, dependency tracing), then Planner for depth (phase design, ordering).
|
|
84
|
-
|
|
85
|
-
## Foundation Integration
|
|
86
|
-
|
|
87
|
-
Load these skills BEFORE executing this step:
|
|
88
|
-
|
|
89
|
-
| Skill | Purpose | When |
|
|
90
|
-
|-------|---------|------|
|
|
91
|
-
| `aikit` | Core MCP tools — search, analyze, remember, validate | Always (auto-loaded) |
|
|
92
|
-
| `present` | Rich rendering for any structured output — assessments, reports, comparisons, reviews, status boards, tables, charts, and all artifact content | Use for ANY output that benefits from rich rendering, not just dashboards |
|
|
93
|
-
| `multi-agents-development` | Dispatch templates, task decomposition, review pipeline patterns | Before dispatching any subagent |
|
|
94
|
-
| `brainstorming` | Structured ideation for design/creative decisions | Before any design choice or new feature exploration |
|
|
95
|
-
| `adr-skill` | Architecture Decision Records for non-trivial technical decisions | When plan involves architecture choices that need documentation |
|
|
96
|
-
| `c4-architecture` | C4 model diagrams showing system structure changes | When plan modifies system architecture |
|
|
97
|
-
|
|
98
|
-
### Presentation Rules
|
|
99
|
-
- Use `present` for **any output** that benefits from rich rendering — not limited to dashboards
|
|
100
|
-
- Assessments, reports, comparisons, reviews, status boards → `present({ format: "html" })`
|
|
101
|
-
- Tables, charts, progress tracking, code review findings → always present
|
|
102
|
-
- Artifact content and summaries → present with structured layout
|
|
103
|
-
- Only use plain text for brief confirmations and simple questions
|
|
104
|
-
|
|
105
|
-
## Completion Criteria
|
|
106
|
-
|
|
107
|
-
- [ ] All spec requirements have corresponding plan phases
|
|
108
|
-
- [ ] Each phase has explicit file scope and test strategy
|
|
109
|
-
- [ ] Architecture decisions documented with rationale
|
|
110
|
-
- [ ] Dependency graph has no circular dependencies
|
|
111
|
-
- [ ] Risks identified with mitigations
|
|
112
|
-
- [ ] `{{artifacts_path}}/plan.md` written
|
|
113
|
-
|
|
114
|
-
## Knowledge Capture
|
|
115
|
-
|
|
116
|
-
Before completing this step, persist important findings using `remember()`:
|
|
117
|
-
|
|
118
|
-
- **Task dependencies**: Critical ordering constraints and parallel opportunities
|
|
119
|
-
- **Risk assessment**: Identified risks and mitigation strategies
|
|
120
|
-
- **Resource decisions**: File ownership, module boundaries, and integration points
|
|
121
|
-
|
|
122
|
-
**Every step produces knowledge worth preserving.** If you discovered something that would help a future session, call `remember()` now.
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: spec
|
|
3
|
-
description: Elicit requirements, clarify scope, and define acceptance criteria through structured dialogue.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Specification
|
|
7
|
-
|
|
8
|
-
## Prerequisites Check
|
|
9
|
-
|
|
10
|
-
Before starting this step, verify:
|
|
11
|
-
- [ ] Design decisions approved (design-decisions.md exists with user approval)
|
|
12
|
-
- [ ] FORGE tier assigned and documented
|
|
13
|
-
|
|
14
|
-
If prerequisites are NOT met -> **backtrack to design step** (`flow_step({ action: 'redo' })` on previous step)
|
|
15
|
-
|
|
16
|
-
## Purpose
|
|
17
|
-
|
|
18
|
-
Transform a vague or broad feature request into a precise, testable specification through requirements elicitation and stakeholder dialogue.
|
|
19
|
-
|
|
20
|
-
## Inputs
|
|
21
|
-
|
|
22
|
-
- User's feature request, issue, or idea
|
|
23
|
-
- Codebase context (accessed via aikit MCP tools)
|
|
24
|
-
|
|
25
|
-
## Process
|
|
26
|
-
|
|
27
|
-
1. **Understand intent** — Parse what the user wants and why
|
|
28
|
-
2. **Search for context** — `search()` for related prior decisions, existing patterns, and similar features
|
|
29
|
-
3. **Elicit requirements** — Ask structured questions to clarify:
|
|
30
|
-
- **Functional**: What must the system do?
|
|
31
|
-
- **Non-functional**: Performance, security, accessibility constraints
|
|
32
|
-
- **Scope boundaries**: What is explicitly out of scope?
|
|
33
|
-
- **Acceptance criteria**: How do we know it's done?
|
|
34
|
-
4. **Score clarity** — Use the `requirements-clarity` skill to score 0–100. Iterate questions until ≥ 90.
|
|
35
|
-
5. **Draft specification** — Write formal spec with all requirements resolved
|
|
36
|
-
|
|
37
|
-
## Outputs
|
|
38
|
-
|
|
39
|
-
Write `{{artifacts_path}}/spec.md` to disk. **You MUST create this file** using `create_file` or equivalent — do not just present content in chat.
|
|
40
|
-
|
|
41
|
-
Template:
|
|
42
|
-
|
|
43
|
-
```markdown
|
|
44
|
-
# Specification: <feature title>
|
|
45
|
-
|
|
46
|
-
## Summary
|
|
47
|
-
<1-2 sentence description>
|
|
48
|
-
|
|
49
|
-
## Motivation
|
|
50
|
-
<why this feature is needed>
|
|
51
|
-
|
|
52
|
-
## Functional Requirements
|
|
53
|
-
1. <requirement with acceptance criterion>
|
|
54
|
-
2. ...
|
|
55
|
-
|
|
56
|
-
## Non-Functional Requirements
|
|
57
|
-
- Performance: <constraints>
|
|
58
|
-
- Security: <constraints>
|
|
59
|
-
- Accessibility: <constraints>
|
|
60
|
-
|
|
61
|
-
## Scope
|
|
62
|
-
### In Scope
|
|
63
|
-
- <item>
|
|
64
|
-
|
|
65
|
-
### Out of Scope
|
|
66
|
-
- <item>
|
|
67
|
-
|
|
68
|
-
## Acceptance Criteria
|
|
69
|
-
- [ ] <testable criterion>
|
|
70
|
-
- [ ] ...
|
|
71
|
-
|
|
72
|
-
## Open Questions
|
|
73
|
-
<none — all resolved during elicitation>
|
|
74
|
-
|
|
75
|
-
## Clarity Score: <N>/100
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Agents
|
|
79
|
-
|
|
80
|
-
| Agent | Role |
|
|
81
|
-
|-------|------|
|
|
82
|
-
| **Researcher-Alpha** | Deep analysis of existing codebase patterns, prior decisions, and technical constraints |
|
|
83
|
-
|
|
84
|
-
Use the `brainstorming` skill for creative/design exploration before formalizing requirements. Use `requirements-clarity` skill to score and iterate until the spec is unambiguous.
|
|
85
|
-
|
|
86
|
-
## Foundation Integration
|
|
87
|
-
|
|
88
|
-
Load these skills BEFORE executing this step:
|
|
89
|
-
|
|
90
|
-
| Skill | Purpose | When |
|
|
91
|
-
|-------|---------|------|
|
|
92
|
-
| `aikit` | Core MCP tools — search, analyze, remember, validate | Always (auto-loaded) |
|
|
93
|
-
| `present` | Rich rendering for any structured output — assessments, reports, comparisons, reviews, status boards, tables, charts, and all artifact content | Use for ANY output that benefits from rich rendering, not just dashboards |
|
|
94
|
-
| `multi-agents-development` | Dispatch templates, task decomposition, review pipeline patterns | Before dispatching any subagent |
|
|
95
|
-
| `brainstorming` | Structured ideation for design/creative decisions | Before any design choice or new feature exploration |
|
|
96
|
-
| `requirements-clarity` | Score requirements 0-100, iterate until ≥90 before proceeding | Before writing spec — ensures requirements are clear enough |
|
|
97
|
-
|
|
98
|
-
### Presentation Rules
|
|
99
|
-
- Use `present` for **any output** that benefits from rich rendering — not limited to dashboards
|
|
100
|
-
- Assessments, reports, comparisons, reviews, status boards → `present({ format: "html" })`
|
|
101
|
-
- Tables, charts, progress tracking, code review findings → always present
|
|
102
|
-
- Artifact content and summaries → present with structured layout
|
|
103
|
-
- Only use plain text for brief confirmations and simple questions
|
|
104
|
-
|
|
105
|
-
## Completion Criteria
|
|
106
|
-
|
|
107
|
-
- [ ] All functional requirements have acceptance criteria
|
|
108
|
-
- [ ] Scope boundaries are explicit
|
|
109
|
-
- [ ] Requirements clarity score ≥ 90
|
|
110
|
-
- [ ] No open questions remain
|
|
111
|
-
- [ ] `{{artifacts_path}}/spec.md` written
|
|
112
|
-
|
|
113
|
-
## Knowledge Capture
|
|
114
|
-
|
|
115
|
-
Before completing this step, persist important findings using `remember()`:
|
|
116
|
-
|
|
117
|
-
- **Requirements clarified**: Ambiguities resolved and assumptions validated
|
|
118
|
-
- **Scope boundaries**: What the spec covers and explicit exclusions
|
|
119
|
-
- **Acceptance criteria**: Key testable conditions that define "done"
|
|
120
|
-
|
|
121
|
-
**Every step produces knowledge worth preserving.** If you discovered something that would help a future session, call `remember()` now.
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: task
|
|
3
|
-
description: Break the implementation plan into ordered, atomic tasks with dependencies and agent assignments.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Task Breakdown
|
|
7
|
-
|
|
8
|
-
## Prerequisites Check
|
|
9
|
-
|
|
10
|
-
Before starting this step, verify:
|
|
11
|
-
- [ ] Implementation plan approved
|
|
12
|
-
- [ ] `{{artifacts_path}}/plan.md` exists with defined phases
|
|
13
|
-
|
|
14
|
-
If prerequisites are NOT met → **backtrack to plan step** (`flow_step({ action: 'redo' })` on previous step)
|
|
15
|
-
|
|
16
|
-
## Purpose
|
|
17
|
-
|
|
18
|
-
Decompose the implementation plan into small, atomic tasks that agents can execute independently, with clear dependency ordering and acceptance criteria per task.
|
|
19
|
-
|
|
20
|
-
## Inputs
|
|
21
|
-
|
|
22
|
-
- `{{artifacts_path}}/plan.md` — the phased implementation plan
|
|
23
|
-
|
|
24
|
-
## Process
|
|
25
|
-
|
|
26
|
-
1. **Load plan** — Read phases, file scope, and dependency graph
|
|
27
|
-
2. **Decompose phases into tasks** — Each task should:
|
|
28
|
-
- Touch 1–3 files maximum
|
|
29
|
-
- Have a single, testable outcome
|
|
30
|
-
- Take one agent one focused session
|
|
31
|
-
3. **Define dependencies** — Map task-to-task dependencies (not just phase-to-phase)
|
|
32
|
-
4. **Assign agents** — Match each task to the best-fit agent based on scope
|
|
33
|
-
5. **Identify parallelism** — Mark which tasks can run simultaneously
|
|
34
|
-
6. **Architecture review** — Have Architect-Reviewer validate task ordering won't create integration issues
|
|
35
|
-
|
|
36
|
-
## Outputs
|
|
37
|
-
|
|
38
|
-
Write `{{artifacts_path}}/tasks.md` to disk. **You MUST create this file** using `create_file` or equivalent — do not just present content in chat.
|
|
39
|
-
|
|
40
|
-
Template:
|
|
41
|
-
|
|
42
|
-
```markdown
|
|
43
|
-
# Task Breakdown: <feature title>
|
|
44
|
-
|
|
45
|
-
## Task Graph
|
|
46
|
-
|
|
47
|
-
### Phase 1: <name>
|
|
48
|
-
- [ ] **T1.1**: <description>
|
|
49
|
-
- Files: <list>
|
|
50
|
-
- Agent: <agent name>
|
|
51
|
-
- Depends on: none
|
|
52
|
-
- Acceptance: <testable criterion>
|
|
53
|
-
|
|
54
|
-
- [ ] **T1.2**: <description>
|
|
55
|
-
- Files: <list>
|
|
56
|
-
- Agent: <agent name>
|
|
57
|
-
- Depends on: T1.1
|
|
58
|
-
- Acceptance: <testable criterion>
|
|
59
|
-
|
|
60
|
-
### Phase 2: <name>
|
|
61
|
-
- [ ] **T2.1**: <description> (can parallel with T1.2)
|
|
62
|
-
...
|
|
63
|
-
|
|
64
|
-
## Parallelism Map
|
|
65
|
-
| Batch | Tasks | Agents |
|
|
66
|
-
|-------|-------|--------|
|
|
67
|
-
| 1 | T1.1 | Implementer |
|
|
68
|
-
| 2 | T1.2, T2.1 | Implementer, Frontend |
|
|
69
|
-
| 3 | T2.2 | Implementer |
|
|
70
|
-
| ... | ... | ... |
|
|
71
|
-
|
|
72
|
-
## Estimated Batches: <N>
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Agents
|
|
76
|
-
|
|
77
|
-
| Agent | Role |
|
|
78
|
-
|-------|------|
|
|
79
|
-
| **Planner** | Decomposes plan phases into atomic tasks with dependency ordering |
|
|
80
|
-
| **Architect-Reviewer-Alpha** | Validates task decomposition won't cause integration issues |
|
|
81
|
-
|
|
82
|
-
Planner does the decomposition, then Architect-Reviewer validates the task graph.
|
|
83
|
-
|
|
84
|
-
## Foundation Integration
|
|
85
|
-
|
|
86
|
-
Load these skills BEFORE executing this step:
|
|
87
|
-
|
|
88
|
-
| Skill | Purpose | When |
|
|
89
|
-
|-------|---------|------|
|
|
90
|
-
| `aikit` | Core MCP tools — search, analyze, remember, validate | Always (auto-loaded) |
|
|
91
|
-
| `present` | Rich rendering for any structured output — assessments, reports, comparisons, reviews, status boards, tables, charts, and all artifact content | Use for ANY output that benefits from rich rendering, not just dashboards |
|
|
92
|
-
| `multi-agents-development` | Dispatch templates, task decomposition, review pipeline patterns | Before dispatching any subagent |
|
|
93
|
-
| `brainstorming` | Structured ideation for design/creative decisions | Before any design choice or new feature exploration |
|
|
94
|
-
|
|
95
|
-
### Presentation Rules
|
|
96
|
-
- Use `present` for **any output** that benefits from rich rendering — not limited to dashboards
|
|
97
|
-
- Assessments, reports, comparisons, reviews, status boards → `present({ format: "html" })`
|
|
98
|
-
- Tables, charts, progress tracking, code review findings → always present
|
|
99
|
-
- Artifact content and summaries → present with structured layout
|
|
100
|
-
- Only use plain text for brief confirmations and simple questions
|
|
101
|
-
|
|
102
|
-
## Completion Criteria
|
|
103
|
-
|
|
104
|
-
- [ ] Every plan phase maps to ≥1 task
|
|
105
|
-
- [ ] Each task touches ≤3 files
|
|
106
|
-
- [ ] Dependencies form a DAG (no cycles)
|
|
107
|
-
- [ ] Parallelism opportunities identified
|
|
108
|
-
- [ ] Architect review confirms no integration risks
|
|
109
|
-
- [ ] `{{artifacts_path}}/tasks.md` written
|
|
110
|
-
|
|
111
|
-
## Knowledge Capture
|
|
112
|
-
|
|
113
|
-
Before completing this step, persist important findings using `remember()`:
|
|
114
|
-
|
|
115
|
-
- **Task decomposition rationale**: Why tasks were split this way and what each accomplishes
|
|
116
|
-
- **Interface contracts**: APIs, types, or data shapes that tasks depend on
|
|
117
|
-
- **Coordination points**: Where tasks interact and handoff requirements
|
|
118
|
-
|
|
119
|
-
**Every step produces knowledge worth preserving.** If you discovered something that would help a future session, call `remember()` now.
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: verify
|
|
3
|
-
description: Dual code review, architecture review, security review, and comprehensive test validation.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Verification (Advanced)
|
|
7
|
-
|
|
8
|
-
## Prerequisites Check
|
|
9
|
-
|
|
10
|
-
Before starting this step, verify:
|
|
11
|
-
- [ ] All tasks marked complete in progress tracker
|
|
12
|
-
- [ ] `check({})` and `test_run({})` pass
|
|
13
|
-
- [ ] `{{artifacts_path}}/progress.md` exists with execution results
|
|
14
|
-
|
|
15
|
-
If prerequisites are NOT met → **backtrack to execute step** (`flow_step({ action: 'redo' })` on previous step)
|
|
16
|
-
|
|
17
|
-
## Purpose
|
|
18
|
-
|
|
19
|
-
Perform thorough multi-perspective validation of all changes through parallel dual code review, architecture review, and security analysis.
|
|
20
|
-
|
|
21
|
-
## Inputs
|
|
22
|
-
|
|
23
|
-
- `{{artifacts_path}}/spec.md` — original requirements and acceptance criteria
|
|
24
|
-
- `{{artifacts_path}}/plan.md` — architecture decisions and phase design
|
|
25
|
-
- `{{artifacts_path}}/tasks.md` — task breakdown with per-task acceptance criteria
|
|
26
|
-
- `{{artifacts_path}}/progress.md` — implementation status and changes made
|
|
27
|
-
|
|
28
|
-
## Process
|
|
29
|
-
|
|
30
|
-
1. **Load all artifacts** — Read spec, plan, tasks, and progress
|
|
31
|
-
2. **Dual code review** (parallel):
|
|
32
|
-
- Code-Reviewer-Alpha: focus on correctness, conventions, quality
|
|
33
|
-
- Code-Reviewer-Beta: focus on edge cases, error handling, maintainability
|
|
34
|
-
3. **Architecture review** (parallel with code review):
|
|
35
|
-
- Architect-Reviewer-Alpha: validate changes align with plan and ADRs
|
|
36
|
-
- Architect-Reviewer-Beta: assess long-term maintainability and evolution
|
|
37
|
-
4. **Security review**:
|
|
38
|
-
- Security agent: OWASP Top 10, auth/authz, input validation, secrets
|
|
39
|
-
5. **Quality gates** — `check({})` + `test_run({})` must pass
|
|
40
|
-
6. **Blast radius** — `blast_radius({ changed_files: [...] })` on all modified files
|
|
41
|
-
7. **Acceptance criteria** — Verify each spec acceptance criterion is met
|
|
42
|
-
8. **FORGE gate** — `evidence_map({ action: "gate" })` for final quality assessment
|
|
43
|
-
9. **Synthesize report** — Merge all reviewer findings into unified verdict
|
|
44
|
-
|
|
45
|
-
## Outputs
|
|
46
|
-
|
|
47
|
-
Write `{{artifacts_path}}/verify-report.md` to disk. **You MUST create this file** using `create_file` or equivalent — do not just present content in chat.
|
|
48
|
-
|
|
49
|
-
Template:
|
|
50
|
-
|
|
51
|
-
```markdown
|
|
52
|
-
# Verification Report: <feature title>
|
|
53
|
-
|
|
54
|
-
## Verdict: PASS | FAIL
|
|
55
|
-
|
|
56
|
-
## Acceptance Criteria
|
|
57
|
-
- [x] <criterion> — verified by <method>
|
|
58
|
-
- [ ] <criterion> — FAILED: <reason>
|
|
59
|
-
|
|
60
|
-
## Quality Gates
|
|
61
|
-
- check: PASS/FAIL
|
|
62
|
-
- test_run: PASS/FAIL (<N> passed, <M> failed)
|
|
63
|
-
- blast_radius: <impact summary>
|
|
64
|
-
- FORGE gate: YIELD/HOLD/HARD_BLOCK
|
|
65
|
-
|
|
66
|
-
## Code Review (Alpha)
|
|
67
|
-
<findings with severity: critical/major/minor/suggestion>
|
|
68
|
-
|
|
69
|
-
## Code Review (Beta)
|
|
70
|
-
<findings with severity>
|
|
71
|
-
|
|
72
|
-
## Architecture Review
|
|
73
|
-
<alignment assessment, any concerns>
|
|
74
|
-
|
|
75
|
-
## Security Review
|
|
76
|
-
<vulnerabilities found, OWASP compliance>
|
|
77
|
-
|
|
78
|
-
## Recommendation
|
|
79
|
-
APPROVE | REQUEST CHANGES
|
|
80
|
-
|
|
81
|
-
### Required Changes (if any)
|
|
82
|
-
1. <change needed>
|
|
83
|
-
2. ...
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## Agents
|
|
87
|
-
|
|
88
|
-
| Agent | Role |
|
|
89
|
-
|-------|------|
|
|
90
|
-
| **Code-Reviewer-Alpha** | Primary code review — correctness, quality, conventions |
|
|
91
|
-
| **Code-Reviewer-Beta** | Secondary code review — edge cases, error handling, maintainability |
|
|
92
|
-
| **Architect-Reviewer-Alpha** | Primary architecture review — alignment with plan and ADRs |
|
|
93
|
-
| **Architect-Reviewer-Beta** | Secondary architecture review — long-term evolution |
|
|
94
|
-
| **Security** | Security analysis — OWASP, auth, input validation |
|
|
95
|
-
|
|
96
|
-
**Parallelism**: All 5 reviewers can run in parallel — they are read-only.
|
|
97
|
-
|
|
98
|
-
## Foundation Integration
|
|
99
|
-
|
|
100
|
-
Load these skills BEFORE executing this step:
|
|
101
|
-
|
|
102
|
-
| Skill | Purpose | When |
|
|
103
|
-
|-------|---------|------|
|
|
104
|
-
| `aikit` | Core MCP tools — search, analyze, remember, validate | Always (auto-loaded) |
|
|
105
|
-
| `present` | Rich rendering for any structured output — assessments, reports, comparisons, reviews, status boards, tables, charts, and all artifact content | Use for ANY output that benefits from rich rendering, not just dashboards |
|
|
106
|
-
| `multi-agents-development` | Dispatch templates, task decomposition, review pipeline patterns | Before dispatching any subagent |
|
|
107
|
-
| `brainstorming` | Structured ideation for design/creative decisions | Before any design choice or new feature exploration |
|
|
108
|
-
| `lesson-learned` | Extract engineering principles from completed work | After verification — capture lessons from the implementation |
|
|
109
|
-
| `session-handoff` | Context preservation for session continuity | When verification spans sessions or for final handoff documentation |
|
|
110
|
-
|
|
111
|
-
### Presentation Rules
|
|
112
|
-
- Use `present` for **any output** that benefits from rich rendering — not limited to dashboards
|
|
113
|
-
- Assessments, reports, comparisons, reviews, status boards → `present({ format: "html" })`
|
|
114
|
-
- Tables, charts, progress tracking, code review findings → always present
|
|
115
|
-
- Artifact content and summaries → present with structured layout
|
|
116
|
-
- Only use plain text for brief confirmations and simple questions
|
|
117
|
-
|
|
118
|
-
### FORGE Quality Gate
|
|
119
|
-
|
|
120
|
-
After all reviews complete:
|
|
121
|
-
1. `evidence_map({ action: "gate", task_id: "<slug>" })` → returns YIELD/HOLD/HARD_BLOCK
|
|
122
|
-
2. YIELD → approved, proceed to commit
|
|
123
|
-
3. HOLD → minor issues, fix then re-gate (max 3 rounds)
|
|
124
|
-
4. HARD_BLOCK → critical issues, escalate to user
|
|
125
|
-
|
|
126
|
-
## Completion Criteria
|
|
127
|
-
|
|
128
|
-
- [ ] Dual code review complete (2 reviewers)
|
|
129
|
-
- [ ] Architecture review complete (2 reviewers)
|
|
130
|
-
- [ ] Security review complete
|
|
131
|
-
- [ ] `check({})` passes
|
|
132
|
-
- [ ] `test_run({})` passes
|
|
133
|
-
- [ ] All spec acceptance criteria verified
|
|
134
|
-
- [ ] FORGE gate passed (YIELD)
|
|
135
|
-
- [ ] `{{artifacts_path}}/verify-report.md` written with clear verdict
|
|
136
|
-
|
|
137
|
-
## Knowledge Capture
|
|
138
|
-
|
|
139
|
-
Before completing this step, persist important findings using `remember()`:
|
|
140
|
-
|
|
141
|
-
- **Test coverage gaps**: Areas that couldn't be fully tested and why
|
|
142
|
-
- **Quality findings**: Issues found during verification and their resolutions
|
|
143
|
-
- **Session checkpoint**: Summarize what was accomplished, decisions made, and any remaining work
|
|
144
|
-
|
|
145
|
-
**Every step produces knowledge worth preserving.** If you discovered something that would help a future session, call `remember()` now.
|