@entelligentsia/forgecli 0.10.1 → 0.11.2
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/CHANGELOG.md +78 -0
- package/README.md +21 -3
- package/dist/CHANGELOG-forge-plugin.md +22 -0
- package/dist/extensions/forgecli/add-pipeline.d.ts +19 -0
- package/dist/extensions/forgecli/add-pipeline.js +143 -0
- package/dist/extensions/forgecli/add-pipeline.js.map +1 -0
- package/dist/extensions/forgecli/add-task.d.ts +20 -0
- package/dist/extensions/forgecli/add-task.js +154 -0
- package/dist/extensions/forgecli/add-task.js.map +1 -0
- package/dist/extensions/forgecli/calibrate.d.ts +61 -0
- package/dist/extensions/forgecli/calibrate.js +488 -0
- package/dist/extensions/forgecli/calibrate.js.map +1 -0
- package/dist/extensions/forgecli/fix-bug.d.ts +9 -1
- package/dist/extensions/forgecli/fix-bug.js +70 -8
- package/dist/extensions/forgecli/fix-bug.js.map +1 -1
- package/dist/extensions/forgecli/forge-commands.js +15 -22
- package/dist/extensions/forgecli/forge-commands.js.map +1 -1
- package/dist/extensions/forgecli/forge-subagent.js +34 -7
- package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
- package/dist/extensions/forgecli/forge-update-command.d.ts +9 -0
- package/dist/extensions/forgecli/forge-update-command.js +106 -7
- package/dist/extensions/forgecli/forge-update-command.js.map +1 -1
- package/dist/extensions/forgecli/health-check.d.ts +22 -1
- package/dist/extensions/forgecli/health-check.js +177 -4
- package/dist/extensions/forgecli/health-check.js.map +1 -1
- package/dist/extensions/forgecli/hook-dispatcher.d.ts +25 -1
- package/dist/extensions/forgecli/hook-dispatcher.js +104 -9
- package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
- package/dist/extensions/forgecli/hooks/check-update.d.ts +81 -0
- package/dist/extensions/forgecli/hooks/check-update.js +308 -0
- package/dist/extensions/forgecli/hooks/check-update.js.map +1 -0
- package/dist/extensions/forgecli/hooks/forge-permissions.d.ts +32 -0
- package/dist/extensions/forgecli/hooks/forge-permissions.js +119 -0
- package/dist/extensions/forgecli/hooks/forge-permissions.js.map +1 -0
- package/dist/extensions/forgecli/hooks/triage-error.d.ts +23 -0
- package/dist/extensions/forgecli/hooks/triage-error.js +62 -0
- package/dist/extensions/forgecli/hooks/triage-error.js.map +1 -0
- package/dist/extensions/forgecli/hooks/write-guard.d.ts +28 -0
- package/dist/extensions/forgecli/hooks/write-guard.js +225 -0
- package/dist/extensions/forgecli/hooks/write-guard.js.map +1 -0
- package/dist/extensions/forgecli/index.js +60 -0
- package/dist/extensions/forgecli/index.js.map +1 -1
- package/dist/extensions/forgecli/init-context.d.ts +1 -1
- package/dist/extensions/forgecli/init-context.js +21 -6
- package/dist/extensions/forgecli/init-context.js.map +1 -1
- package/dist/extensions/forgecli/materialize.d.ts +16 -0
- package/dist/extensions/forgecli/materialize.js +195 -0
- package/dist/extensions/forgecli/materialize.js.map +1 -0
- package/dist/extensions/forgecli/migrate.d.ts +19 -0
- package/dist/extensions/forgecli/migrate.js +258 -0
- package/dist/extensions/forgecli/migrate.js.map +1 -0
- package/dist/extensions/forgecli/migration-engine.d.ts +111 -0
- package/dist/extensions/forgecli/migration-engine.js +533 -0
- package/dist/extensions/forgecli/migration-engine.js.map +1 -0
- package/dist/extensions/forgecli/quiz-agent.d.ts +17 -0
- package/dist/extensions/forgecli/quiz-agent.js +98 -0
- package/dist/extensions/forgecli/quiz-agent.js.map +1 -0
- package/dist/extensions/forgecli/remove-command.d.ts +17 -0
- package/dist/extensions/forgecli/remove-command.js +124 -0
- package/dist/extensions/forgecli/remove-command.js.map +1 -0
- package/dist/extensions/forgecli/report-bug.d.ts +25 -0
- package/dist/extensions/forgecli/report-bug.js +159 -0
- package/dist/extensions/forgecli/report-bug.js.map +1 -0
- package/dist/extensions/forgecli/retrospective.d.ts +19 -0
- package/dist/extensions/forgecli/retrospective.js +156 -0
- package/dist/extensions/forgecli/retrospective.js.map +1 -0
- package/dist/extensions/forgecli/run-sprint.js +34 -0
- package/dist/extensions/forgecli/run-sprint.js.map +1 -1
- package/dist/extensions/forgecli/run-task.d.ts +9 -1
- package/dist/extensions/forgecli/run-task.js +64 -10
- package/dist/extensions/forgecli/run-task.js.map +1 -1
- package/dist/extensions/forgecli/session-registry.d.ts +27 -2
- package/dist/extensions/forgecli/session-registry.js +52 -1
- package/dist/extensions/forgecli/session-registry.js.map +1 -1
- package/dist/extensions/forgecli/status-command.d.ts +19 -0
- package/dist/extensions/forgecli/status-command.js +140 -0
- package/dist/extensions/forgecli/status-command.js.map +1 -0
- package/dist/extensions/forgecli/store-query.d.ts +22 -0
- package/dist/extensions/forgecli/store-query.js +107 -0
- package/dist/extensions/forgecli/store-query.js.map +1 -0
- package/dist/extensions/forgecli/store-repair.d.ts +17 -0
- package/dist/extensions/forgecli/store-repair.js +123 -0
- package/dist/extensions/forgecli/store-repair.js.map +1 -0
- package/dist/extensions/forgecli/thread-switcher.js +213 -28
- package/dist/extensions/forgecli/thread-switcher.js.map +1 -1
- package/dist/extensions/forgecli/update-tools.d.ts +23 -0
- package/dist/extensions/forgecli/update-tools.js +136 -0
- package/dist/extensions/forgecli/update-tools.js.map +1 -0
- package/dist/extensions/forgecli/viewport-theme.js +4 -0
- package/dist/extensions/forgecli/viewport-theme.js.map +1 -1
- package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
- package/dist/forge-payload/.schemas/config.schema.json +83 -0
- package/dist/forge-payload/.schemas/migrations.json +2049 -0
- package/dist/forge-payload/commands/regenerate.md +17 -1
- package/dist/forge-payload/meta/personas/README.md +16 -0
- package/dist/forge-payload/meta/personas/meta-architect.md +70 -0
- package/dist/forge-payload/meta/personas/meta-bug-fixer.md +73 -0
- package/dist/forge-payload/meta/personas/meta-collator.md +72 -0
- package/dist/forge-payload/meta/personas/meta-engineer.md +70 -0
- package/dist/forge-payload/meta/personas/meta-orchestrator.md +71 -0
- package/dist/forge-payload/meta/personas/meta-product-manager.md +82 -0
- package/dist/forge-payload/meta/personas/meta-qa-engineer.md +91 -0
- package/dist/forge-payload/meta/personas/meta-supervisor.md +92 -0
- package/dist/forge-payload/meta/skill-recommendations.md +154 -0
- package/dist/forge-payload/meta/skills/meta-architect-skills.md +43 -0
- package/dist/forge-payload/meta/skills/meta-bug-fixer-skills.md +43 -0
- package/dist/forge-payload/meta/skills/meta-collator-skills.md +41 -0
- package/dist/forge-payload/meta/skills/meta-engineer-skills.md +43 -0
- package/dist/forge-payload/meta/skills/meta-generic-skills.md +58 -0
- package/dist/forge-payload/meta/skills/meta-qa-engineer-skills.md +46 -0
- package/dist/forge-payload/meta/skills/meta-supervisor-skills.md +43 -0
- package/dist/forge-payload/meta/store-schema/bug.schema.md +71 -0
- package/dist/forge-payload/meta/store-schema/event.schema.md +76 -0
- package/dist/forge-payload/meta/store-schema/feature.schema.md +65 -0
- package/dist/forge-payload/meta/store-schema/sprint.schema.md +64 -0
- package/dist/forge-payload/meta/store-schema/task.schema.md +78 -0
- package/dist/forge-payload/meta/templates/meta-code-review.md +26 -0
- package/dist/forge-payload/meta/templates/meta-plan-review.md +28 -0
- package/dist/forge-payload/meta/templates/meta-plan.md +28 -0
- package/dist/forge-payload/meta/templates/meta-progress.md +25 -0
- package/dist/forge-payload/meta/templates/meta-retrospective.md +28 -0
- package/dist/forge-payload/meta/templates/meta-sprint-manifest.md +26 -0
- package/dist/forge-payload/meta/templates/meta-sprint-requirements.md +91 -0
- package/dist/forge-payload/meta/templates/meta-task-prompt.md +26 -0
- package/dist/forge-payload/meta/tool-specs/collate.spec.md +88 -0
- package/dist/forge-payload/meta/tool-specs/generation-manifest.spec.md +139 -0
- package/dist/forge-payload/meta/tool-specs/manage-config.spec.md +143 -0
- package/dist/forge-payload/meta/tool-specs/seed-store.spec.md +91 -0
- package/dist/forge-payload/meta/tool-specs/store-cli.spec.md +328 -0
- package/dist/forge-payload/meta/tool-specs/validate-store.spec.md +191 -0
- package/dist/forge-payload/meta/workflows/_fragments/context-injection.md +75 -0
- package/dist/forge-payload/meta/workflows/_fragments/event-emission-schema.md +73 -0
- package/dist/forge-payload/meta/workflows/_fragments/finalize.md +13 -0
- package/dist/forge-payload/meta/workflows/_fragments/friction-emit.md +73 -0
- package/dist/forge-payload/meta/workflows/_fragments/progress-reporting.md +38 -0
- package/dist/forge-payload/meta/workflows/_fragments/store-cli-verbs.md +39 -0
- package/dist/forge-payload/meta/workflows/meta-approve.md +119 -0
- package/dist/forge-payload/meta/workflows/meta-collate.md +89 -0
- package/dist/forge-payload/meta/workflows/meta-commit.md +93 -0
- package/dist/forge-payload/meta/workflows/meta-enhance.md +286 -0
- package/dist/forge-payload/meta/workflows/meta-fix-bug.md +501 -0
- package/dist/forge-payload/meta/workflows/meta-implement.md +132 -0
- package/dist/forge-payload/meta/workflows/meta-migrate.md +455 -0
- package/dist/forge-payload/meta/workflows/meta-orchestrate.md +993 -0
- package/dist/forge-payload/meta/workflows/meta-plan-task.md +133 -0
- package/dist/forge-payload/meta/workflows/meta-quiz-agent.md +135 -0
- package/dist/forge-payload/meta/workflows/meta-retrospective.md +65 -0
- package/dist/forge-payload/meta/workflows/meta-review-implementation.md +119 -0
- package/dist/forge-payload/meta/workflows/meta-review-plan.md +108 -0
- package/dist/forge-payload/meta/workflows/meta-review-sprint-completion.md +65 -0
- package/dist/forge-payload/meta/workflows/meta-sprint-intake.md +76 -0
- package/dist/forge-payload/meta/workflows/meta-sprint-plan.md +147 -0
- package/dist/forge-payload/meta/workflows/meta-update-implementation.md +76 -0
- package/dist/forge-payload/meta/workflows/meta-update-plan.md +76 -0
- package/dist/forge-payload/meta/workflows/meta-validate.md +111 -0
- package/dist/forge-payload/tools/check-structure.cjs +344 -0
- package/dist/forge-payload/tools/list-skills.js +76 -0
- package/dist/forge-payload/tools/store-cli.cjs +27 -1
- package/dist/forge-payload/tools/substitute-placeholders.cjs +60 -8
- package/dist/forge-payload/tools/verify-integrity.cjs +86 -0
- package/package.json +2 -2
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Forge Skill Recommendations
|
|
2
|
+
|
|
3
|
+
Maps discovered stack components to verified Claude Code marketplace skills.
|
|
4
|
+
Used during `forge:init` (Phase 2) and `forge:health` to recommend skills
|
|
5
|
+
that complement Forge's project-specific knowledge.
|
|
6
|
+
|
|
7
|
+
## Skill Sources
|
|
8
|
+
|
|
9
|
+
Skills come from two locations — both are checked by `tools/list-skills.js`:
|
|
10
|
+
|
|
11
|
+
| Source | Location | Install mechanism |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| Marketplace plugin | `~/.claude/plugins/installed_plugins.json` | `/plugin install <name>@<marketplace>` |
|
|
14
|
+
| Personal skill | `~/.claude/skills/<name>/SKILL.md` | Manual — place SKILL.md in directory |
|
|
15
|
+
|
|
16
|
+
Marketplace install format: `/plugin install <skill-name>@<marketplace>`
|
|
17
|
+
|
|
18
|
+
Personal skills cannot be installed via `/plugin install`. If a recommended personal
|
|
19
|
+
skill is not present, surface it in the health report with its source noted as "personal skill".
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Why This Matters
|
|
24
|
+
|
|
25
|
+
Forge generates project-specific context: your entities, auth patterns,
|
|
26
|
+
business rules, conventions. Marketplace skills provide universal technique
|
|
27
|
+
knowledge: LSP intelligence for your language, frontend design patterns, etc.
|
|
28
|
+
A Forge-generated persona that invokes a relevant skill gets both layers —
|
|
29
|
+
project knowledge AND technique depth — without duplication.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Language Servers (LSP)
|
|
34
|
+
|
|
35
|
+
High-confidence for any project using the matched language. LSP skills give
|
|
36
|
+
agents go-to-definition, find-references, static analysis, and real-time
|
|
37
|
+
diagnostics, dramatically reducing hallucinated API usage.
|
|
38
|
+
|
|
39
|
+
| If stack language includes | Skill | Marketplace | Install |
|
|
40
|
+
|---|---|---|---|
|
|
41
|
+
| TypeScript, JavaScript | `typescript-lsp` | claude-plugins-official | `/plugin install typescript-lsp@claude-plugins-official` |
|
|
42
|
+
| Python | `pyright-lsp` | claude-plugins-official | `/plugin install pyright-lsp@claude-plugins-official` |
|
|
43
|
+
| Ruby | `ruby-lsp` | claude-plugins-official | `/plugin install ruby-lsp@claude-plugins-official` |
|
|
44
|
+
| Go | `gopls-lsp` | claude-plugins-official | `/plugin install gopls-lsp@claude-plugins-official` |
|
|
45
|
+
| Rust | `rust-analyzer-lsp` | claude-plugins-official | `/plugin install rust-analyzer-lsp@claude-plugins-official` |
|
|
46
|
+
| Java | `jdtls-lsp` | claude-plugins-official | `/plugin install jdtls-lsp@claude-plugins-official` |
|
|
47
|
+
| Kotlin | `kotlin-lsp` | claude-plugins-official | `/plugin install kotlin-lsp@claude-plugins-official` |
|
|
48
|
+
| C# / .NET | `csharp-lsp` | claude-plugins-official | `/plugin install csharp-lsp@claude-plugins-official` |
|
|
49
|
+
| C, C++ | `clangd-lsp` | claude-plugins-official | `/plugin install clangd-lsp@claude-plugins-official` |
|
|
50
|
+
| PHP | `php-lsp` | claude-plugins-official | `/plugin install php-lsp@claude-plugins-official` |
|
|
51
|
+
| Swift, iOS | `swift-lsp` | claude-plugins-official | `/plugin install swift-lsp@claude-plugins-official` |
|
|
52
|
+
| Lua | `lua-lsp` | claude-plugins-official | `/plugin install lua-lsp@claude-plugins-official` |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Frontend & UI
|
|
57
|
+
|
|
58
|
+
| If stack contains | Skill | Source | Confidence | Why |
|
|
59
|
+
|---|---|---|---|---|
|
|
60
|
+
| Any web UI, React, Vue, Svelte | `frontend-design` | `claude-plugins-official` | High | Production-grade UI, distinctive design, avoids generic AI aesthetics |
|
|
61
|
+
| Vue, Nuxt, Pinia, Vue Router | `vue-best-practices` | personal (`~/.claude/skills/`) | High | Composition API, `<script setup>`, TypeScript, SSR, Volar, vue-tsc |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 3D Graphics & XR
|
|
66
|
+
|
|
67
|
+
| If stack contains | Skill | Marketplace | Why |
|
|
68
|
+
|---|---|---|---|
|
|
69
|
+
| Three.js | `threejs-skills` | agentic-skills | 10 skills: scene, geometry, materials, lighting, textures, animation, shaders, post-processing |
|
|
70
|
+
| WebXR, Meta Quest | `meta-webxr-skills` | agentic-skills | 8 skills: XR session lifecycle, rendering, input, passthrough, anchors, PWA packaging |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Security
|
|
75
|
+
|
|
76
|
+
| Signal | Skill | Confidence | Why |
|
|
77
|
+
|---|---|---|---|
|
|
78
|
+
| Any project | `security-guidance` | Medium | Hook-based warnings for command injection, XSS, unsafe patterns during file edits |
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Payments & Commerce
|
|
83
|
+
|
|
84
|
+
| If stack contains | Skill | Source | Confidence | Why |
|
|
85
|
+
|---|---|---|---|---|
|
|
86
|
+
| Stripe, stripe-js, stripe-python | `stripe-integration` | personal (`~/.claude/skills/`) | High | PCI-compliant checkout, subscriptions, webhook handling, idempotency |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Support & CRM
|
|
91
|
+
|
|
92
|
+
| If stack contains | Skill | Source | Confidence | Why |
|
|
93
|
+
|---|---|---|---|---|
|
|
94
|
+
| Freshdesk | `freshdesk-api` | personal (`~/.claude/skills/`) | High | Ticket management, contacts, companies, support workflow automation |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## MCP & AI Integration
|
|
99
|
+
|
|
100
|
+
| If stack contains | Skill | Source | Confidence | Why |
|
|
101
|
+
|---|---|---|---|---|
|
|
102
|
+
| MCP server code | `mcp-server-dev` | `claude-plugins-official` | High | Deployment models, tool design, auth, interactive MCP apps |
|
|
103
|
+
| Anthropic SDK, Claude API | `agent-sdk-dev` | `claude-plugins-official` | High | Claude Agent SDK patterns, tool use, multi-agent orchestration |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Workflow Plugins (use with awareness of Forge overlap)
|
|
108
|
+
|
|
109
|
+
These plugins provide workflow automation. They overlap with Forge's own
|
|
110
|
+
Supervisor and Architect workflows. **Do not recommend during init** — let
|
|
111
|
+
the user decide after reviewing Forge's generated workflows.
|
|
112
|
+
|
|
113
|
+
Surface these in `forge:health` only if the relevant Forge workflow is absent
|
|
114
|
+
or the user explicitly asks.
|
|
115
|
+
|
|
116
|
+
| Plugin | What it does | Overlap with Forge |
|
|
117
|
+
|---|---|---|
|
|
118
|
+
| `code-review` | Multi-agent PR code review with confidence scoring | Duplicates Supervisor review workflow |
|
|
119
|
+
| `pr-review-toolkit` | Specialized agents for tests, error handling, type design | Duplicates Supervisor review workflow |
|
|
120
|
+
| `commit-commands` | `/commit`, `/push`, `/pr` slash commands | Duplicates `meta-commit` workflow |
|
|
121
|
+
| `feature-dev` | Feature development with exploration + architecture agents | Overlaps with Orchestrator pipeline |
|
|
122
|
+
| `claude-code-setup` | Analyzes codebase and recommends hooks, skills, MCP servers | Complementary to `forge:init` |
|
|
123
|
+
| `claude-md-management` | Audits and improves CLAUDE.md files | Complementary — runs alongside Forge |
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Confidence Levels
|
|
128
|
+
|
|
129
|
+
- **High** — primary language or framework detected; install without hesitation
|
|
130
|
+
- **Medium** — relevant but not central to the stack; user should decide
|
|
131
|
+
- **Low** — generally useful; surface in health report, not init prompt
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Persona Integration Pattern
|
|
136
|
+
|
|
137
|
+
When a skill is installed, Forge-generated personas should invoke it explicitly
|
|
138
|
+
at the relevant workflow step — not mention it in a notes section.
|
|
139
|
+
|
|
140
|
+
Template (fill in skill name and trigger context):
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
When [doing X], YOU MUST invoke the `<skill-name>` skill before proceeding.
|
|
144
|
+
That skill provides universal [domain] technique knowledge; the stack checklist
|
|
145
|
+
provides project-specific conventions. Both layers are required. No exceptions.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Apply this to whichever workflow step overlaps with the skill's domain:
|
|
149
|
+
- Architect reviewing a plan → invoke LSP skill + domain technique skill
|
|
150
|
+
- Supervisor reviewing implementation → invoke LSP skill + domain technique skill
|
|
151
|
+
- Engineer implementing → invoke LSP skill at task start
|
|
152
|
+
|
|
153
|
+
LSP skills in particular should be wired into every Engineer workflow that
|
|
154
|
+
touches the language, not just review steps.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: architect-skills
|
|
3
|
+
name: Architect Meta-Skills
|
|
4
|
+
description: Core capabilities and toolsets for the Architect role.
|
|
5
|
+
role: Architect
|
|
6
|
+
applies_to: [architect]
|
|
7
|
+
summary: >
|
|
8
|
+
High-level system design, strategic planning, and architecture review
|
|
9
|
+
capabilities that prioritise scalability, maintainability, and integrity.
|
|
10
|
+
capabilities:
|
|
11
|
+
- Evaluate system structure for debt and bottlenecks
|
|
12
|
+
- Select design patterns and define interface contracts
|
|
13
|
+
- Map technical roadmaps across sprints
|
|
14
|
+
- Perform trade-off and scalability analysis
|
|
15
|
+
- Review implementations for architectural drift
|
|
16
|
+
file_ref: .forge/skills/architect-skills.md
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Generation Instructions
|
|
20
|
+
|
|
21
|
+
When generating the project-specific skill set for the Architect role in `.forge/skills/architect-skills.md`, the generator must:
|
|
22
|
+
1. Cross-reference the `installedSkills` list in `.forge/config.json`.
|
|
23
|
+
2. Map the universal skills listed below to the specific implementation names found in `installedSkills`.
|
|
24
|
+
3. Focus on high-level analysis, system design, and strategic planning tools.
|
|
25
|
+
4. Ensure the resulting skill set prioritizes scalability, maintainability, and architectural integrity.
|
|
26
|
+
|
|
27
|
+
## Skill Set
|
|
28
|
+
|
|
29
|
+
### 🏗️ System Design & Modeling
|
|
30
|
+
- **Architecture Analysis**: Evaluating the current system structure to identify technical debt and bottlenecks.
|
|
31
|
+
- **Design Pattern Selection**: Determining the most appropriate patterns (e.g., Microservices, Event-driven) for new features.
|
|
32
|
+
- **Data Modeling**: Designing efficient database schemas and data flow diagrams.
|
|
33
|
+
- **Interface Specification**: Defining clear API contracts and communication protocols between components.
|
|
34
|
+
|
|
35
|
+
### 🗺️ Strategic Planning
|
|
36
|
+
- **Technical Roadmap**: Mapping out the evolution of the system over multiple sprints.
|
|
37
|
+
- **Trade-off Analysis**: Weighing the pros and cons of different technical approaches (e.g., Build vs. Buy).
|
|
38
|
+
- **Complexity Management**: Breaking down large architectural goals into manageable technical tasks.
|
|
39
|
+
|
|
40
|
+
### 🔍 High-Level Review
|
|
41
|
+
- **Architecture Review**: Ensuring that implementations align with the intended design and don't introduce "architectural drift".
|
|
42
|
+
- **Scalability Assessment**: Analyzing how the system will handle growth in users or data volume.
|
|
43
|
+
- **Security Modeling**: Identifying potential attack vectors and designing mitigation strategies.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: bug-fixer-skills
|
|
3
|
+
name: Bug-Fixer Meta-Skills
|
|
4
|
+
description: Core capabilities and toolsets for the Bug-Fixer role.
|
|
5
|
+
role: BugFixer
|
|
6
|
+
applies_to: [bug-fixer]
|
|
7
|
+
summary: >
|
|
8
|
+
Rapid reproduction, isolation, surgical remediation, and regression-safe
|
|
9
|
+
verification of reported bugs.
|
|
10
|
+
capabilities:
|
|
11
|
+
- Create minimal reproducible examples
|
|
12
|
+
- Bisect commits and analyse logs to locate failure
|
|
13
|
+
- Apply surgical fixes that avoid collateral damage
|
|
14
|
+
- Write a regression test that fails without the fix and passes with it
|
|
15
|
+
- Verify fixes across environments and under stress
|
|
16
|
+
file_ref: .forge/skills/bug-fixer-skills.md
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Generation Instructions
|
|
20
|
+
|
|
21
|
+
When generating the project-specific skill set for the Bug-Fixer role in `.forge/skills/bug-fixer-skills.md`, the generator must:
|
|
22
|
+
1. Cross-reference the `installedSkills` list in `.forge/config.json`.
|
|
23
|
+
2. Map the universal skills listed below to the specific implementation names found in `installedSkills`.
|
|
24
|
+
3. Emphasize tools for rapid reproduction, isolation, and verification.
|
|
25
|
+
4. Ensure the resulting skill set focuses on minimizing regression and maximizing fix stability.
|
|
26
|
+
|
|
27
|
+
## Skill Set
|
|
28
|
+
|
|
29
|
+
### 🐛 Triage & Isolation
|
|
30
|
+
- **Reproduction**: Creating minimal, reproducible examples of the reported bug.
|
|
31
|
+
- **Log Analysis**: Sifting through system and application logs to identify the point of failure.
|
|
32
|
+
- **State Inspection**: Using debuggers or telemetry to examine the system state at the moment of the crash.
|
|
33
|
+
- **Bisection**: Using git bisect or similar techniques to find the commit that introduced the bug.
|
|
34
|
+
|
|
35
|
+
### 🛠️ Targeted Remediation
|
|
36
|
+
- **Surgical Fixes**: Applying the most precise fix possible to avoid collateral damage.
|
|
37
|
+
- **Regression Prevention**: Writing a specific test case that fails without the fix and passes with it.
|
|
38
|
+
- **Hotfix Deployment**: Managing the rapid release of critical fixes to production environments.
|
|
39
|
+
|
|
40
|
+
### 🧪 Verification & Validation
|
|
41
|
+
- **Stress Testing**: Subjecting the fix to high loads or unusual inputs to ensure stability.
|
|
42
|
+
- **Cross-Environment Testing**: Verifying the fix across different OSs, browsers, or hardware configurations.
|
|
43
|
+
- **Verification Sign-off**: Providing evidence that the bug is resolved and no new issues were introduced.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: collator-skills
|
|
3
|
+
name: Collator Meta-Skills
|
|
4
|
+
description: Core capabilities and toolsets for the Collator role.
|
|
5
|
+
role: Collator
|
|
6
|
+
applies_to: [collator]
|
|
7
|
+
summary: >
|
|
8
|
+
Deterministic data aggregation, markdown regeneration, and store
|
|
9
|
+
consistency — accurate writeback, entity linking, and index maintenance.
|
|
10
|
+
capabilities:
|
|
11
|
+
- Regenerate MASTER_INDEX.md, TIMESHEET.md, and sprint summaries
|
|
12
|
+
- Cross-reference tasks, bugs, features, events in the store
|
|
13
|
+
- Detect referential integrity gaps and schema drift
|
|
14
|
+
- Merge multi-source subagent outputs atomically
|
|
15
|
+
file_ref: .forge/skills/collator-skills.md
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Generation Instructions
|
|
19
|
+
|
|
20
|
+
When generating the project-specific skill set for the Collator role in `.forge/skills/collator-skills.md`, the generator must:
|
|
21
|
+
1. Cross-reference the `installedSkills` list in `.forge/config.json`.
|
|
22
|
+
2. Map the universal skills listed below to the specific implementation names found in `installedSkills`.
|
|
23
|
+
3. Emphasize tools for data aggregation, markdown regeneration, and store consistency.
|
|
24
|
+
4. Ensure the resulting skill set focuses on accurate writeback, entity linking, and index maintenance.
|
|
25
|
+
|
|
26
|
+
## Skill Set
|
|
27
|
+
|
|
28
|
+
### 📑 Data Aggregation & Writeback
|
|
29
|
+
- **Markdown Regeneration**: Rebuilding `MASTER_INDEX.md`, sprint summaries, and progress reports from the JSON store.
|
|
30
|
+
- **Entity Linking**: Ensuring tasks, bugs, features, and events are correctly cross-referenced in the store.
|
|
31
|
+
- **Store Writeback**: Persisting generated artifacts using `store-cli.cjs` via the Store Custodian skill.
|
|
32
|
+
|
|
33
|
+
### 🔍 Consistency & Validation
|
|
34
|
+
- **Referential Integrity**: Detecting orphaned entities, broken links, and stale references across store records.
|
|
35
|
+
- **Index Reconciliation**: Comparing `MASTER_INDEX.md` against the actual store contents and flagging drift.
|
|
36
|
+
- **Schema Compliance**: Validating that store records conform to their respective JSON schemas before writeback.
|
|
37
|
+
|
|
38
|
+
### 🔄 Synchronization
|
|
39
|
+
- **Multi-Source Merge**: Combining data from multiple subagent outputs into a single coherent artifact.
|
|
40
|
+
- **Change Detection**: Identifying which store records have been modified since the last collation pass.
|
|
41
|
+
- **Atomic Updates**: Ensuring that partial writeback failures do not leave the store in an inconsistent state.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: engineer-skills
|
|
3
|
+
name: Engineer Meta-Skills
|
|
4
|
+
description: Core capabilities and toolsets for the Engineer role.
|
|
5
|
+
role: Engineer
|
|
6
|
+
applies_to: [engineer]
|
|
7
|
+
summary: >
|
|
8
|
+
Concrete capabilities the Engineer persona must use to execute a task:
|
|
9
|
+
code analysis, implementation, testing, debugging, and CI/CD alignment.
|
|
10
|
+
capabilities:
|
|
11
|
+
- Analyse codebases using Grep, Read, Glob
|
|
12
|
+
- Implement features per approved plans and project conventions
|
|
13
|
+
- Write unit, integration, and end-to-end tests
|
|
14
|
+
- Perform root cause analysis and impact analysis
|
|
15
|
+
- Align commits and branches with the project's git flow
|
|
16
|
+
file_ref: .forge/skills/engineer-skills.md
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Generation Instructions
|
|
20
|
+
|
|
21
|
+
When generating the project-specific skill set for the Engineer role in `.forge/skills/engineer-skills.md`, the generator must:
|
|
22
|
+
1. Cross-reference the `installedSkills` list in `.forge/config.json`.
|
|
23
|
+
2. Map the universal skills listed below to the specific implementation names found in `installedSkills`.
|
|
24
|
+
3. Interpolate any project-specific tool names or internal CLI commands used for build, test, and deployment.
|
|
25
|
+
4. Ensure that the resulting skill set is actionable, providing clear triggers for when each skill should be invoked.
|
|
26
|
+
|
|
27
|
+
## Skill Set
|
|
28
|
+
|
|
29
|
+
### 🛠️ Implementation & Coding
|
|
30
|
+
- **Code Analysis**: Ability to read, analyze, and understand existing codebases using `Grep`, `Read`, and `Glob`.
|
|
31
|
+
- **Feature Implementation**: Converting technical designs into working code while adhering to project style guides.
|
|
32
|
+
- **Refactoring**: Improving code structure without altering behavior, focusing on maintainability and efficiency.
|
|
33
|
+
- **Test Writing**: Implementing unit, integration, and end-to-end tests to ensure correctness.
|
|
34
|
+
|
|
35
|
+
### 🔍 Investigation & Debugging
|
|
36
|
+
- **Root Cause Analysis**: Using logs, debugger tools, and hypothesis testing to isolate bugs.
|
|
37
|
+
- **Impact Analysis**: Assessing how a change in one part of the system affects other components.
|
|
38
|
+
- **Performance Profiling**: Identifying bottlenecks and optimizing critical paths.
|
|
39
|
+
|
|
40
|
+
### ⚙️ Workflow Integration
|
|
41
|
+
- **Git Mastery**: Managing branches, commits, and PRs following the project's git flow.
|
|
42
|
+
- **CI/CD Alignment**: Ensuring code passes pipeline checks and is deployable.
|
|
43
|
+
- **Tool Synthesis**: Creating small scripts or tools to automate repetitive engineering tasks.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: generic-skills
|
|
3
|
+
name: Generic Meta-Skills
|
|
4
|
+
description: Baseline capabilities for support and orchestration roles.
|
|
5
|
+
role: Generic
|
|
6
|
+
applies_to: [orchestrator, collator, supervisor]
|
|
7
|
+
summary: >
|
|
8
|
+
Baseline coordination, information synthesis, and basic tooling that
|
|
9
|
+
every support role needs regardless of domain.
|
|
10
|
+
capabilities:
|
|
11
|
+
- Schedule tasks and manage dependency resolution
|
|
12
|
+
- Hand off context between roles cleanly
|
|
13
|
+
- Aggregate progress from multiple agents
|
|
14
|
+
- Perform basic file and git operations
|
|
15
|
+
- Monitor logs and events for triggers
|
|
16
|
+
file_ref: .forge/skills/generic-skills.md
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Generation Instructions
|
|
20
|
+
|
|
21
|
+
When generating the project-specific skill set for support roles (e.g., Orchestrator, Collator) in `.forge/skills/generic-skills.md`, the generator must:
|
|
22
|
+
1. Cross-reference the `installedSkills` list in `.forge/config.json`.
|
|
23
|
+
2. Map the universal skills listed below to the specific implementation names found in `installedSkills`.
|
|
24
|
+
3. Focus on data aggregation, communication, and process management.
|
|
25
|
+
4. Ensure the resulting skill set is lightweight and focused on efficiency.
|
|
26
|
+
|
|
27
|
+
## Skill Set
|
|
28
|
+
|
|
29
|
+
### 🔄 Coordination & Orchestration
|
|
30
|
+
- **Task Scheduling**: Managing the sequence of task execution and dependency resolution.
|
|
31
|
+
- **Agent Handoff**: Ensuring smooth transitions of context and responsibility between different roles.
|
|
32
|
+
- **Status Reporting**: Aggregating progress from multiple agents into a concise summary.
|
|
33
|
+
|
|
34
|
+
### 📑 Information Synthesis
|
|
35
|
+
- **Data Collation**: Gathering disparate pieces of information into a structured format.
|
|
36
|
+
- **Summary Generation**: Distilling complex technical discussions into key takeaways and action items.
|
|
37
|
+
- **Artifact Mapping**: Ensuring that tasks, bugs, and features are correctly linked in the store.
|
|
38
|
+
|
|
39
|
+
### 🛠️ Basic Tooling
|
|
40
|
+
- **File Management**: Basic use of `Read`, `Write`, and `Glob` for housekeeping.
|
|
41
|
+
- **Git Basics**: Performing simple commits and status checks.
|
|
42
|
+
- **Log Monitoring**: Watching for specific event patterns to trigger transitions.
|
|
43
|
+
|
|
44
|
+
## Orchestrator Iron Laws
|
|
45
|
+
|
|
46
|
+
These laws apply to every orchestrator workflow (task pipeline and bug-fix pipeline). They are the non-negotiable invariants of the phase loop.
|
|
47
|
+
|
|
48
|
+
**YOU MUST NOT advance a phase until its gate checks pass.** Skipping a gate because "it's probably fine" or "it's a small change" is not allowed. No exceptions.
|
|
49
|
+
|
|
50
|
+
**Review ordering is hardcoded:** spec compliance review ALWAYS runs before code quality review. Never reverse this. Checking quality before confirming correctness is wasted work.
|
|
51
|
+
|
|
52
|
+
**Revision loop exhaustion is an escalation trigger.** If max_iterations is reached without approval, escalate to the human immediately. Do NOT approve to unblock the pipeline.
|
|
53
|
+
|
|
54
|
+
**Always read the verdict from the artifact.** Never assume approval because the review phase ran without error. The artifact is the source of truth.
|
|
55
|
+
|
|
56
|
+
**Phase banners are orchestrator-owned.** Do NOT include banner-first instructions in subagent prompts. The orchestrator displays the badge before spawning and the exit signal after return.
|
|
57
|
+
|
|
58
|
+
**No emoji in machine-readable fields.** Emoji belong only in stdout announcements and human-facing Markdown. JSON fields use plain values only.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: qa-engineer-skills
|
|
3
|
+
name: QA Engineer Meta-Skills
|
|
4
|
+
description: Core capabilities and toolsets for the QA Engineer role.
|
|
5
|
+
role: QAEngineer
|
|
6
|
+
applies_to: [qa-engineer]
|
|
7
|
+
summary: >
|
|
8
|
+
Test strategy, coverage analysis, and verification that prevents
|
|
9
|
+
regressions and validates acceptance criteria against implementations.
|
|
10
|
+
capabilities:
|
|
11
|
+
- Design test plans mapping each acceptance criterion to test cases
|
|
12
|
+
- Analyse coverage reports and identify untested paths
|
|
13
|
+
- Probe edge cases, boundary conditions, and unusual inputs
|
|
14
|
+
- Detect flaky tests and enforce quality gates
|
|
15
|
+
file_ref: .forge/skills/qa-engineer-skills.md
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Generation Instructions
|
|
19
|
+
|
|
20
|
+
When generating the project-specific skill set for the QA Engineer role in `.forge/skills/qa-engineer-skills.md`, the generator must:
|
|
21
|
+
1. Cross-reference the `installedSkills` list in `.forge/config.json`.
|
|
22
|
+
2. Map the universal skills listed below to the specific implementation names found in `installedSkills`.
|
|
23
|
+
3. Emphasize tools for test strategy, coverage analysis, and verification.
|
|
24
|
+
4. Ensure the resulting skill set focuses on preventing regressions and validating acceptance criteria.
|
|
25
|
+
|
|
26
|
+
## Skill Set
|
|
27
|
+
|
|
28
|
+
### 🧪 Test Strategy & Design
|
|
29
|
+
- **Test Plan Creation**: Designing comprehensive test plans that cover functional, integration, and edge-case scenarios.
|
|
30
|
+
- **Acceptance Criteria Validation**: Mapping each acceptance criterion to specific test cases that prove compliance.
|
|
31
|
+
- **Risk-Based Testing**: Prioritizing test effort on areas with the highest defect probability or business impact.
|
|
32
|
+
|
|
33
|
+
### 📊 Coverage & Analysis
|
|
34
|
+
- **Coverage Analysis**: Interpreting code coverage reports and identifying untested paths.
|
|
35
|
+
- **Gap Identification**: Finding scenarios not covered by the existing test suite and proposing new tests.
|
|
36
|
+
- **Regression Risk Assessment**: Evaluating the blast radius of code changes to determine regression risk.
|
|
37
|
+
|
|
38
|
+
### ✅ Verification & Validation
|
|
39
|
+
- **Build Verification**: Running the project's build and test commands to confirm that implementation meets specifications.
|
|
40
|
+
- **Specification Compliance**: Checking that the implementation matches the approved plan's acceptance criteria.
|
|
41
|
+
- **Edge Case Discovery**: Probing boundary conditions, error paths, and unusual input combinations.
|
|
42
|
+
|
|
43
|
+
### 🔄 Continuous Quality
|
|
44
|
+
- **Test Maintenance**: Keeping the test suite current as the codebase evolves.
|
|
45
|
+
- **Flakiness Detection**: Identifying and resolving non-deterministic test failures.
|
|
46
|
+
- **Quality Gates**: Enforcing test pass requirements before marking tasks as complete.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: supervisor-skills
|
|
3
|
+
name: Supervisor Meta-Skills
|
|
4
|
+
description: Core capabilities and toolsets for the Supervisor and QA role.
|
|
5
|
+
role: Supervisor
|
|
6
|
+
applies_to: [supervisor]
|
|
7
|
+
summary: >
|
|
8
|
+
Quality assurance, review governance, and defect feedback — verifying
|
|
9
|
+
specifications, test coverage, and compliance before work advances.
|
|
10
|
+
capabilities:
|
|
11
|
+
- Validate requirements against implementations
|
|
12
|
+
- Review test plans for coverage and effectiveness
|
|
13
|
+
- Conduct code reviews for logic, style, and maintainability
|
|
14
|
+
- Maintain audit trails and compliance checks
|
|
15
|
+
- Orchestrate approval transitions from implementing to review-approved
|
|
16
|
+
file_ref: .forge/skills/supervisor-skills.md
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Generation Instructions
|
|
20
|
+
|
|
21
|
+
When generating the project-specific skill set for the Supervisor role in `.forge/skills/supervisor-skills.md`, the generator must:
|
|
22
|
+
1. Cross-reference the `installedSkills` list in `.forge/config.json`.
|
|
23
|
+
2. Map the universal skills listed below to the specific implementation names found in `installedSkills`.
|
|
24
|
+
3. Include triggers for quality gates, review cycles, and validation checks.
|
|
25
|
+
4. Ensure the resulting skill set emphasizes verification, correctness, and adherence to specifications.
|
|
26
|
+
|
|
27
|
+
## Skill Set
|
|
28
|
+
|
|
29
|
+
### ✅ Quality Assurance & Verification
|
|
30
|
+
- **Requirement Validation**: Comparing implemented features against the original specifications and acceptance criteria.
|
|
31
|
+
- **Test Plan Review**: Evaluating the coverage and effectiveness of the Engineer's test suite.
|
|
32
|
+
- **Edge Case Discovery**: Identifying potential failure modes and boundary conditions that may have been missed.
|
|
33
|
+
- **Regression Testing**: Ensuring that new changes do not break existing functionality.
|
|
34
|
+
|
|
35
|
+
### 📋 Review & Governance
|
|
36
|
+
- **Code Review**: Conducting thorough reviews of PRs for logic, style, and maintainability.
|
|
37
|
+
- **Audit Trails**: Ensuring that all changes are documented and linked to the appropriate tasks/bugs.
|
|
38
|
+
- **Compliance Checking**: Verifying that the code adheres to organizational standards and security policies.
|
|
39
|
+
|
|
40
|
+
### 📈 Feedback & Coordination
|
|
41
|
+
- **Defect Reporting**: Clearly documenting bugs and assigning them back to engineers with reproducible steps.
|
|
42
|
+
- **Progress Tracking**: Monitoring task completion and identifying blockers in the pipeline.
|
|
43
|
+
- **Approval Orchestration**: Managing the transition of tasks from `implementing` to `review-approved`.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Store Schema: Bug
|
|
2
|
+
|
|
3
|
+
## File Location
|
|
4
|
+
|
|
5
|
+
`.forge/store/bugs/{BUG_ID}.json`
|
|
6
|
+
|
|
7
|
+
## Fields
|
|
8
|
+
|
|
9
|
+
| Field | Type | Required | Description |
|
|
10
|
+
|-------|------|----------|-------------|
|
|
11
|
+
| `bugId` | string | yes | e.g. `ACME-BUG-01` |
|
|
12
|
+
| `title` | string | yes | Bug title |
|
|
13
|
+
| `description` | string | no | Detailed description |
|
|
14
|
+
| `severity` | enum | yes | `critical` / `major` / `minor` |
|
|
15
|
+
| `status` | enum | yes | See status values below |
|
|
16
|
+
| `path` | string | yes | Relative path to bug artifact directory |
|
|
17
|
+
| `rootCauseCategory` | enum | no | See categories below |
|
|
18
|
+
| `similarBugs` | string[] | no | Bug IDs with similar root cause |
|
|
19
|
+
| `checklistItemAdded` | boolean | no | Whether a stack-checklist item was added |
|
|
20
|
+
| `businessRuleUpdated` | boolean | no | Whether business domain docs were updated |
|
|
21
|
+
| `reportedAt` | string | yes | ISO 8601 timestamp |
|
|
22
|
+
| `resolvedAt` | string | no | ISO 8601 timestamp |
|
|
23
|
+
|
|
24
|
+
## Status Values
|
|
25
|
+
|
|
26
|
+
`reported` → `triaged` → `in-progress` → `fixed`
|
|
27
|
+
|
|
28
|
+
`fixed` is the terminal state — set by the commit phase after the bug-fix
|
|
29
|
+
commit lands. The architect's approval signal travels through
|
|
30
|
+
`bug.summaries.approve.verdict` (read by `read-verdict.cjs §
|
|
31
|
+
BUG_PHASE_VERDICT_SOURCE`), not through `bug.status`. Earlier revisions of
|
|
32
|
+
this schema included `approved` and `verified` enum values; they were
|
|
33
|
+
removed because no workflow phase wrote them and their mere presence in the
|
|
34
|
+
schema invited LLM-translated task workflows to attempt `update-status bug
|
|
35
|
+
... approved`, which produced FORGE-BUG-002.
|
|
36
|
+
|
|
37
|
+
## Root Cause Categories
|
|
38
|
+
|
|
39
|
+
`validation` / `auth` / `business-rule` / `data-integrity` / `race-condition` / `integration` / `configuration` / `regression`
|
|
40
|
+
|
|
41
|
+
## JSON Schema
|
|
42
|
+
|
|
43
|
+
This block is the canonical machine-readable definition embedded in `validate-store.cjs`.
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
48
|
+
"$id": "forge/bug.schema.json",
|
|
49
|
+
"title": "Bug",
|
|
50
|
+
"type": "object",
|
|
51
|
+
"required": ["bugId", "title", "severity", "status", "path", "reportedAt"],
|
|
52
|
+
"properties": {
|
|
53
|
+
"bugId": { "type": "string" },
|
|
54
|
+
"title": { "type": "string" },
|
|
55
|
+
"description": { "type": "string" },
|
|
56
|
+
"severity": { "type": "string", "enum": ["critical", "major", "minor"] },
|
|
57
|
+
"status": { "type": "string", "enum": ["reported", "triaged", "in-progress", "fixed"] },
|
|
58
|
+
"path": { "type": "string" },
|
|
59
|
+
"rootCauseCategory": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"enum": ["validation", "auth", "business-rule", "data-integrity", "race-condition", "integration", "configuration", "regression"]
|
|
62
|
+
},
|
|
63
|
+
"similarBugs": { "type": "array", "items": { "type": "string" } },
|
|
64
|
+
"checklistItemAdded": { "type": "boolean" },
|
|
65
|
+
"businessRuleUpdated": { "type": "boolean" },
|
|
66
|
+
"reportedAt": { "type": "string", "format": "date-time" },
|
|
67
|
+
"resolvedAt": { "type": "string", "format": "date-time" }
|
|
68
|
+
},
|
|
69
|
+
"additionalProperties": false
|
|
70
|
+
}
|
|
71
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Store Schema: Event
|
|
2
|
+
|
|
3
|
+
## File Location
|
|
4
|
+
|
|
5
|
+
`.forge/store/events/{SPRINT_ID}/{EVENT_ID}.json`
|
|
6
|
+
|
|
7
|
+
## Event ID Format
|
|
8
|
+
|
|
9
|
+
`{ISO_TIMESTAMP}_{TASK_ID}_{ROLE}_{ACTION}`
|
|
10
|
+
|
|
11
|
+
Example: `20260415T141523000Z_ACME-S02-T03_engineer_implement`
|
|
12
|
+
|
|
13
|
+
## Fields
|
|
14
|
+
|
|
15
|
+
| Field | Type | Required | Description |
|
|
16
|
+
|-------|------|----------|-------------|
|
|
17
|
+
| `eventId` | string | yes | Unique event identifier |
|
|
18
|
+
| `taskId` | string | yes | Task this event belongs to |
|
|
19
|
+
| `sprintId` | string | yes | Sprint this event belongs to |
|
|
20
|
+
| `role` | string | yes | Agent role (Engineer, Supervisor, Architect) |
|
|
21
|
+
| `action` | string | yes | Command invoked (e.g. `/implement`) |
|
|
22
|
+
| `phase` | string | yes | Pipeline phase (plan, review-plan, implement, etc.) |
|
|
23
|
+
| `iteration` | integer | yes | Which iteration of this phase (1-based) |
|
|
24
|
+
| `startTimestamp` | string | yes | ISO 8601 |
|
|
25
|
+
| `endTimestamp` | string | yes | ISO 8601 |
|
|
26
|
+
| `durationMinutes` | number | yes | Computed duration |
|
|
27
|
+
| `model` | string | yes | Full model identifier as reported by the host CLI (e.g. `claude-sonnet-4-6`, `gpt-4o`, `o3`) — use the full ID, not a short alias |
|
|
28
|
+
| `provider` | string | yes | Provider name (e.g. `anthropic`, `zai`, `openai`, `bedrock`) — required for cost attribution since same model is priced differently across providers |
|
|
29
|
+
| `verdict` | string | no | For review phases: Approved / Revision Required |
|
|
30
|
+
| `notes` | string | no | Free-form notes |
|
|
31
|
+
| `inputTokens` | integer | no | Input token count (minimum 0). Omit when telemetry is unavailable — never write zero as a placeholder. |
|
|
32
|
+
| `outputTokens` | integer | no | Output token count (minimum 0) |
|
|
33
|
+
| `cacheReadTokens` | integer | no | Cache-read token count (minimum 0) |
|
|
34
|
+
| `cacheWriteTokens` | integer | no | Cache-write token count (minimum 0) |
|
|
35
|
+
| `tokenSource` | enum | no | `reported` / `estimated` — how token counts were obtained. Omit when no telemetry is available; events without tokens surface as husks in collate reports. |
|
|
36
|
+
|
|
37
|
+
> **Cost note:** `estimatedCostUSD` is NOT persisted on event records. Cost is derived at collate time from `(provider, model, tokens)` via `tools/lib/pricing.cjs`. This keeps the dataset truthful when pricing changes.
|
|
38
|
+
|
|
39
|
+
## JSON Schema
|
|
40
|
+
|
|
41
|
+
This block is the canonical machine-readable definition embedded in `validate-store.cjs`.
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
46
|
+
"$id": "forge/event.schema.json",
|
|
47
|
+
"title": "Event",
|
|
48
|
+
"type": "object",
|
|
49
|
+
"required": [
|
|
50
|
+
"eventId", "taskId", "sprintId", "role", "action",
|
|
51
|
+
"phase", "iteration", "startTimestamp", "endTimestamp", "durationMinutes", "model", "provider"
|
|
52
|
+
],
|
|
53
|
+
"properties": {
|
|
54
|
+
"eventId": { "type": "string" },
|
|
55
|
+
"taskId": { "type": "string" },
|
|
56
|
+
"sprintId": { "type": "string" },
|
|
57
|
+
"role": { "type": "string" },
|
|
58
|
+
"action": { "type": "string" },
|
|
59
|
+
"phase": { "type": "string" },
|
|
60
|
+
"iteration": { "type": "integer", "minimum": 1 },
|
|
61
|
+
"startTimestamp": { "type": "string", "format": "date-time" },
|
|
62
|
+
"endTimestamp": { "type": "string", "format": "date-time" },
|
|
63
|
+
"durationMinutes": { "type": "number", "minimum": 0 },
|
|
64
|
+
"model": { "type": "string" },
|
|
65
|
+
"provider": { "type": "string", "maxLength": 60 },
|
|
66
|
+
"verdict": { "type": "string" },
|
|
67
|
+
"notes": { "type": "string" },
|
|
68
|
+
"inputTokens": { "type": "integer", "minimum": 0 },
|
|
69
|
+
"outputTokens": { "type": "integer", "minimum": 0 },
|
|
70
|
+
"cacheReadTokens": { "type": "integer", "minimum": 0 },
|
|
71
|
+
"cacheWriteTokens": { "type": "integer", "minimum": 0 },
|
|
72
|
+
"tokenSource": { "type": "string", "enum": ["reported", "estimated"] }
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
}
|
|
76
|
+
```
|