hatch3r 1.0.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.
Files changed (132) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +437 -0
  3. package/agents/hatch3r-a11y-auditor.md +126 -0
  4. package/agents/hatch3r-architect.md +160 -0
  5. package/agents/hatch3r-ci-watcher.md +123 -0
  6. package/agents/hatch3r-context-rules.md +97 -0
  7. package/agents/hatch3r-dependency-auditor.md +164 -0
  8. package/agents/hatch3r-devops.md +138 -0
  9. package/agents/hatch3r-docs-writer.md +97 -0
  10. package/agents/hatch3r-implementer.md +162 -0
  11. package/agents/hatch3r-learnings-loader.md +108 -0
  12. package/agents/hatch3r-lint-fixer.md +104 -0
  13. package/agents/hatch3r-perf-profiler.md +123 -0
  14. package/agents/hatch3r-researcher.md +642 -0
  15. package/agents/hatch3r-reviewer.md +81 -0
  16. package/agents/hatch3r-security-auditor.md +119 -0
  17. package/agents/hatch3r-test-writer.md +134 -0
  18. package/commands/hatch3r-agent-customize.md +146 -0
  19. package/commands/hatch3r-api-spec.md +49 -0
  20. package/commands/hatch3r-benchmark.md +50 -0
  21. package/commands/hatch3r-board-fill.md +504 -0
  22. package/commands/hatch3r-board-init.md +315 -0
  23. package/commands/hatch3r-board-pickup.md +672 -0
  24. package/commands/hatch3r-board-refresh.md +198 -0
  25. package/commands/hatch3r-board-shared.md +369 -0
  26. package/commands/hatch3r-bug-plan.md +410 -0
  27. package/commands/hatch3r-codebase-map.md +1182 -0
  28. package/commands/hatch3r-command-customize.md +94 -0
  29. package/commands/hatch3r-context-health.md +112 -0
  30. package/commands/hatch3r-cost-tracking.md +139 -0
  31. package/commands/hatch3r-dep-audit.md +171 -0
  32. package/commands/hatch3r-feature-plan.md +379 -0
  33. package/commands/hatch3r-healthcheck.md +307 -0
  34. package/commands/hatch3r-hooks.md +282 -0
  35. package/commands/hatch3r-learn.md +217 -0
  36. package/commands/hatch3r-migration-plan.md +51 -0
  37. package/commands/hatch3r-onboard.md +56 -0
  38. package/commands/hatch3r-project-spec.md +1153 -0
  39. package/commands/hatch3r-recipe.md +179 -0
  40. package/commands/hatch3r-refactor-plan.md +426 -0
  41. package/commands/hatch3r-release.md +328 -0
  42. package/commands/hatch3r-roadmap.md +556 -0
  43. package/commands/hatch3r-rule-customize.md +114 -0
  44. package/commands/hatch3r-security-audit.md +370 -0
  45. package/commands/hatch3r-skill-customize.md +93 -0
  46. package/commands/hatch3r-workflow.md +377 -0
  47. package/dist/cli/hooks-ZOTFDEA3.js +59 -0
  48. package/dist/cli/index.d.ts +2 -0
  49. package/dist/cli/index.js +3584 -0
  50. package/github-agents/hatch3r-docs-agent.md +46 -0
  51. package/github-agents/hatch3r-lint-agent.md +41 -0
  52. package/github-agents/hatch3r-security-agent.md +54 -0
  53. package/github-agents/hatch3r-test-agent.md +66 -0
  54. package/hooks/hatch3r-ci-failure.md +10 -0
  55. package/hooks/hatch3r-file-save.md +11 -0
  56. package/hooks/hatch3r-post-merge.md +10 -0
  57. package/hooks/hatch3r-pre-commit.md +11 -0
  58. package/hooks/hatch3r-pre-push.md +10 -0
  59. package/hooks/hatch3r-session-start.md +10 -0
  60. package/mcp/mcp.json +62 -0
  61. package/package.json +84 -0
  62. package/prompts/hatch3r-bug-triage.md +155 -0
  63. package/prompts/hatch3r-code-review.md +131 -0
  64. package/prompts/hatch3r-pr-description.md +173 -0
  65. package/rules/hatch3r-accessibility-standards.md +77 -0
  66. package/rules/hatch3r-accessibility-standards.mdc +75 -0
  67. package/rules/hatch3r-agent-orchestration.md +160 -0
  68. package/rules/hatch3r-api-design.md +176 -0
  69. package/rules/hatch3r-api-design.mdc +176 -0
  70. package/rules/hatch3r-browser-verification.md +73 -0
  71. package/rules/hatch3r-browser-verification.mdc +73 -0
  72. package/rules/hatch3r-ci-cd.md +70 -0
  73. package/rules/hatch3r-ci-cd.mdc +68 -0
  74. package/rules/hatch3r-code-standards.md +102 -0
  75. package/rules/hatch3r-code-standards.mdc +100 -0
  76. package/rules/hatch3r-component-conventions.md +102 -0
  77. package/rules/hatch3r-component-conventions.mdc +102 -0
  78. package/rules/hatch3r-data-classification.md +85 -0
  79. package/rules/hatch3r-data-classification.mdc +83 -0
  80. package/rules/hatch3r-dependency-management.md +17 -0
  81. package/rules/hatch3r-dependency-management.mdc +15 -0
  82. package/rules/hatch3r-error-handling.md +17 -0
  83. package/rules/hatch3r-error-handling.mdc +15 -0
  84. package/rules/hatch3r-feature-flags.md +112 -0
  85. package/rules/hatch3r-feature-flags.mdc +112 -0
  86. package/rules/hatch3r-git-conventions.md +47 -0
  87. package/rules/hatch3r-git-conventions.mdc +45 -0
  88. package/rules/hatch3r-i18n.md +90 -0
  89. package/rules/hatch3r-i18n.mdc +90 -0
  90. package/rules/hatch3r-learning-consult.md +29 -0
  91. package/rules/hatch3r-learning-consult.mdc +27 -0
  92. package/rules/hatch3r-migrations.md +17 -0
  93. package/rules/hatch3r-migrations.mdc +15 -0
  94. package/rules/hatch3r-observability.md +165 -0
  95. package/rules/hatch3r-observability.mdc +165 -0
  96. package/rules/hatch3r-performance-budgets.md +109 -0
  97. package/rules/hatch3r-performance-budgets.mdc +109 -0
  98. package/rules/hatch3r-secrets-management.md +76 -0
  99. package/rules/hatch3r-secrets-management.mdc +74 -0
  100. package/rules/hatch3r-security-patterns.md +211 -0
  101. package/rules/hatch3r-security-patterns.mdc +211 -0
  102. package/rules/hatch3r-testing.md +89 -0
  103. package/rules/hatch3r-testing.mdc +87 -0
  104. package/rules/hatch3r-theming.md +51 -0
  105. package/rules/hatch3r-theming.mdc +51 -0
  106. package/rules/hatch3r-tooling-hierarchy.md +92 -0
  107. package/rules/hatch3r-tooling-hierarchy.mdc +79 -0
  108. package/skills/hatch3r-a11y-audit/SKILL.md +131 -0
  109. package/skills/hatch3r-agent-customize/SKILL.md +75 -0
  110. package/skills/hatch3r-api-spec/SKILL.md +66 -0
  111. package/skills/hatch3r-architecture-review/SKILL.md +96 -0
  112. package/skills/hatch3r-bug-fix/SKILL.md +129 -0
  113. package/skills/hatch3r-ci-pipeline/SKILL.md +76 -0
  114. package/skills/hatch3r-command-customize/SKILL.md +67 -0
  115. package/skills/hatch3r-context-health/SKILL.md +76 -0
  116. package/skills/hatch3r-cost-tracking/SKILL.md +65 -0
  117. package/skills/hatch3r-dep-audit/SKILL.md +82 -0
  118. package/skills/hatch3r-feature/SKILL.md +129 -0
  119. package/skills/hatch3r-gh-agentic-workflows/SKILL.md +150 -0
  120. package/skills/hatch3r-incident-response/SKILL.md +86 -0
  121. package/skills/hatch3r-issue-workflow/SKILL.md +139 -0
  122. package/skills/hatch3r-logical-refactor/SKILL.md +73 -0
  123. package/skills/hatch3r-migration/SKILL.md +76 -0
  124. package/skills/hatch3r-perf-audit/SKILL.md +114 -0
  125. package/skills/hatch3r-pr-creation/SKILL.md +85 -0
  126. package/skills/hatch3r-qa-validation/SKILL.md +86 -0
  127. package/skills/hatch3r-recipe/SKILL.md +67 -0
  128. package/skills/hatch3r-refactor/SKILL.md +86 -0
  129. package/skills/hatch3r-release/SKILL.md +93 -0
  130. package/skills/hatch3r-rule-customize/SKILL.md +70 -0
  131. package/skills/hatch3r-skill-customize/SKILL.md +67 -0
  132. package/skills/hatch3r-visual-refactor/SKILL.md +89 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ id: hatch3r-command-customize
3
+ type: command
4
+ description: Configure per-command customization including description overrides, enable/disable control, and project-specific markdown instructions
5
+ ---
6
+ # Command Customization — Per-Command Configuration
7
+
8
+ Customize individual command behavior for project-specific needs via `.hatch3r/commands/` configuration files. Supports structured YAML overrides and free-form markdown instruction injection, all propagated to every adapter output on sync.
9
+
10
+ ---
11
+
12
+ ## Customization File Locations
13
+
14
+ Each command supports two optional customization files:
15
+
16
+ ```
17
+ .hatch3r/commands/{command-id}.customize.yaml # structured overrides
18
+ .hatch3r/commands/{command-id}.customize.md # free-form markdown instructions
19
+ ```
20
+
21
+ Both files are optional and can be used independently or together.
22
+
23
+ ## YAML Customization Schema
24
+
25
+ ```yaml
26
+ command: hatch3r-release
27
+ description: "Release workflow with mandatory staging deployment step"
28
+ enabled: true
29
+ ```
30
+
31
+ ### Fields
32
+
33
+ | Field | Type | Default | Description |
34
+ |-------|------|---------|-------------|
35
+ | `description` | string | (from canonical) | Override the command's description in adapter frontmatter |
36
+ | `enabled` | boolean | `true` | Set to `false` to exclude this command from adapter output generation |
37
+
38
+ ## Markdown Customization
39
+
40
+ Create `.hatch3r/commands/{command-id}.customize.md` with free-form markdown to inject project-specific instructions into the command's managed block. This content is appended after the canonical command definition under a `## Project Customizations` header.
41
+
42
+ ### Example
43
+
44
+ **File:** `.hatch3r/commands/hatch3r-release.customize.md`
45
+
46
+ ```markdown
47
+ ## Project-Specific Release Steps
48
+
49
+ Before creating any release:
50
+
51
+ 1. Ensure all E2E tests pass on staging: `npm run test:e2e:staging`
52
+ 2. Verify the changelog has been updated in `CHANGELOG.md`
53
+ 3. Confirm the release has been approved in the `#releases` Slack channel
54
+ 4. Tag the Docker image with the release version
55
+
56
+ ### Deployment Sequence
57
+
58
+ Deploy in order: database migrations → API servers → worker processes → frontend CDN
59
+ ```
60
+
61
+ ### How It Works
62
+
63
+ 1. During `hatch3r sync`, adapters read the `.customize.md` file
64
+ 2. The markdown content is appended inside the managed block, after the canonical command content
65
+ 3. All adapter outputs receive the customization automatically
66
+ 4. Changes propagate on every sync
67
+
68
+ ## Disabling a Command
69
+
70
+ To exclude a command from adapter output without deleting its canonical file:
71
+
72
+ ```yaml
73
+ # .hatch3r/commands/hatch3r-cost-tracking.customize.yaml
74
+ enabled: false
75
+ ```
76
+
77
+ ## Workflow
78
+
79
+ 1. Identify which command to customize
80
+ 2. Create `.hatch3r/commands/{command-id}.customize.yaml` and/or `.customize.md`
81
+ 3. Run `npx hatch3r sync` to propagate changes to all adapter outputs
82
+ 4. Verify the customization appears in the tool-specific command files
83
+
84
+ ## Guardrails
85
+
86
+ - Customization files cannot remove the command's core instructions
87
+ - Invalid YAML produces warnings but does not prevent command execution (graceful degradation)
88
+ - Customization files should be committed to the repository
89
+
90
+ ## Related
91
+
92
+ - Agent customization: `hatch3r-agent-customize` command
93
+ - Skill customization: `hatch3r-skill-customize` command
94
+ - Rule customization: `hatch3r-rule-customize` command
@@ -0,0 +1,112 @@
1
+ ---
2
+ id: hatch3r-context-health
3
+ type: command
4
+ description: Monitor conversation context health, detect degradation, and auto-suggest fresh context or sub-agent delegation
5
+ ---
6
+ # Context Health — Conversation Context Monitoring
7
+
8
+ Monitor and maintain healthy conversation context during long-running agent sessions. Detects context degradation before it impacts output quality and recommends corrective actions.
9
+
10
+ ---
11
+
12
+ ## Context Health Indicators
13
+
14
+ ### Degradation Signals
15
+
16
+ | Signal | Detection Method | Threshold |
17
+ |--------|-----------------|-----------|
18
+ | Conversation depth | Count user/assistant turns | > 30 turns |
19
+ | Token accumulation | Estimate total context tokens | > 80% of model context window |
20
+ | Topic drift | Compare current task to original issue scope | Cosine similarity < 0.6 |
21
+ | Repeated errors | Track consecutive failed attempts | > 2 failures on same task |
22
+ | File staleness | Track time since last file re-read | > 20 turns since last read |
23
+ | Tool failure rate | Track tool call success/failure ratio | > 30% failure rate |
24
+
25
+ ### Health Levels
26
+
27
+ | Level | Status | Action |
28
+ |-------|--------|--------|
29
+ | Green | Healthy (< 50% indicators triggered) | Continue normally |
30
+ | Yellow | Degrading (50-70% indicators triggered) | Refresh key context, summarize progress |
31
+ | Orange | At risk (70-90% indicators triggered) | Delegate remaining work to sub-agent |
32
+ | Red | Degraded (> 90% indicators triggered) | Stop, create checkpoint, spawn fresh agent |
33
+
34
+ ## Monitoring Protocol
35
+
36
+ ### Passive Monitoring (Always Active)
37
+
38
+ Agents should self-assess context health at natural breakpoints:
39
+ - After completing each sub-task or implementation step
40
+ - Before starting a new file or module
41
+ - After receiving an error or unexpected result
42
+ - Every 10 conversation turns
43
+
44
+ ### Self-Assessment Checklist
45
+
46
+ At each checkpoint, the agent evaluates:
47
+ 1. **Can I accurately recall the original task requirements without re-reading?**
48
+ 2. **Am I making progress or cycling on the same issue?**
49
+ 3. **Are my tool calls succeeding at a reasonable rate?**
50
+ 4. **Is my understanding of the codebase still current?**
51
+ 5. **Have I drifted from the issue's acceptance criteria?**
52
+
53
+ ### Corrective Actions
54
+
55
+ #### Refresh (Yellow)
56
+ - Re-read the issue body and acceptance criteria
57
+ - Re-read key files that have been modified
58
+ - Summarize progress so far in a structured checkpoint
59
+
60
+ #### Delegate (Orange)
61
+ - Create a structured handoff document with: completed work, remaining tasks, key context, file list
62
+ - Spawn a sub-agent with the handoff document using the Task tool
63
+ - The sub-agent starts fresh with full context window
64
+
65
+ #### Checkpoint and Stop (Red)
66
+ - Save a progress checkpoint: files changed, tests written, current blockers
67
+ - Post a status comment on the GitHub issue with progress
68
+ - Recommend the user start a new conversation for the remaining work
69
+
70
+ ## Integration with Board Pickup
71
+
72
+ When `board-pickup` operates in auto-advance mode:
73
+ - Context health is checked between each issue
74
+ - If health drops to Orange, the current issue is completed and a fresh agent handles the next one
75
+ - If health drops to Red mid-issue, the issue is marked as PARTIAL and moved back to Ready
76
+
77
+ ## Output Format
78
+
79
+ ```
80
+ ## Context Health Check
81
+
82
+ **Level:** GREEN | YELLOW | ORANGE | RED
83
+
84
+ **Indicators:**
85
+ - Conversation depth: {turns} / 30
86
+ - Token usage: ~{estimated}% of context window
87
+ - Topic coherence: {assessment}
88
+ - Error rate: {n} failures in last {m} operations
89
+ - File staleness: {n} files not re-read in {m} turns
90
+
91
+ **Recommendation:** {CONTINUE | REFRESH | DELEGATE | CHECKPOINT}
92
+
93
+ **Action taken:** {what corrective action was performed, if any}
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Error Handling
99
+
100
+ - **Self-assessment failure:** If the agent cannot determine its own health level, default to Yellow and perform a context refresh.
101
+ - **Delegation failure:** If sub-agent spawn fails, fall back to Checkpoint and Stop (Red protocol).
102
+ - **Board integration failure:** Log warning and continue. Context health operates independently of board state.
103
+
104
+ ---
105
+
106
+ ## Guardrails
107
+
108
+ - **Never ignore Red status.** A Red assessment always results in a checkpoint and stop.
109
+ - **Do not inflate health.** When uncertain, round toward the more degraded level.
110
+ - **Passive monitoring is mandatory** during board-pickup auto-advance mode.
111
+ - **Handoff documents must be complete.** Never delegate without listing completed work, remaining tasks, key context, and file list.
112
+ - **Do not expand scope during refresh.** Re-reading context is not an invitation to add new tasks.
@@ -0,0 +1,139 @@
1
+ ---
2
+ id: hatch3r-cost-tracking
3
+ type: command
4
+ description: Track and report token usage and estimated costs across agent workflows and board operations
5
+ ---
6
+ # Cost Tracking — Token Usage and Cost Reporting
7
+
8
+ Track token consumption and estimated costs across sub-agent workflows, board operations, and development sessions. Provides visibility into AI usage patterns and enforces cost guardrails.
9
+
10
+ ---
11
+
12
+ ## Cost Tracking Model
13
+
14
+ ### Token Estimation
15
+
16
+ Since exact token counts are not always available from the runtime, use estimation:
17
+
18
+ | Content Type | Estimation Rule |
19
+ |-------------|----------------|
20
+ | User message | ~4 characters per token |
21
+ | Assistant response | ~4 characters per token |
22
+ | Tool call (input) | JSON stringified length / 4 |
23
+ | Tool call (output) | Response length / 4 |
24
+ | File read | File character count / 4 |
25
+ | Web search | ~500 tokens per search |
26
+
27
+ ### Cost Estimation
28
+
29
+ | Model Tier | Input (per 1M tokens) | Output (per 1M tokens) |
30
+ |-----------|----------------------|----------------------|
31
+ | Fast | $0.25 | $1.00 |
32
+ | Standard | $3.00 | $15.00 |
33
+ | Premium | $15.00 | $75.00 |
34
+
35
+ These are reference rates — update based on actual provider pricing.
36
+
37
+ ## Tracking Scope
38
+
39
+ ### Per-Issue Tracking
40
+ - Total tokens consumed implementing an issue
41
+ - Breakdown: planning vs implementation vs testing vs review
42
+ - Sub-agent token usage (each sub-agent reports independently)
43
+ - Estimated cost at current model pricing
44
+
45
+ ### Per-Session Tracking
46
+ - Total tokens in the current conversation
47
+ - Running cost estimate
48
+ - Comparison to session budget (if configured)
49
+ - Warning at 50%, 75%, 90% of budget
50
+
51
+ ### Board Operation Tracking
52
+ - Tokens consumed per board-pickup cycle
53
+ - Tokens per issue type (bug fix vs feature vs refactor)
54
+ - Historical trends across sessions
55
+ - Average cost per completed issue
56
+
57
+ ## Cost Guardrails
58
+
59
+ ### Budget Configuration
60
+
61
+ Configure in `hatch.json`:
62
+ ```json
63
+ {
64
+ "costTracking": {
65
+ "sessionBudget": 10.00,
66
+ "issueBudget": 5.00,
67
+ "epicBudget": 50.00,
68
+ "currency": "USD",
69
+ "warningThresholds": [0.5, 0.75, 0.9],
70
+ "hardStop": true
71
+ }
72
+ }
73
+ ```
74
+
75
+ ### Enforcement
76
+
77
+ | Threshold | Action |
78
+ |-----------|--------|
79
+ | 50% of budget | Log warning, continue |
80
+ | 75% of budget | Alert user, suggest optimization |
81
+ | 90% of budget | Strong warning, recommend delegation or checkpoint |
82
+ | 100% of budget | Stop (if hardStop=true) or alert and continue |
83
+
84
+ ### Cost Optimization Strategies
85
+
86
+ When approaching budget limits:
87
+ 1. **Reduce context**: Summarize long conversations, drop irrelevant file content
88
+ 2. **Delegate to faster models**: Use fast-tier sub-agents for routine tasks
89
+ 3. **Cache results**: Avoid re-reading unchanged files
90
+ 4. **Batch operations**: Combine multiple small tool calls into fewer larger ones
91
+ 5. **Scope reduction**: Break remaining work into a new issue for a fresh session
92
+
93
+ ## Output Format
94
+
95
+ ```
96
+ ## Cost Report: {scope}
97
+
98
+ **Period:** {session/issue/sprint}
99
+
100
+ **Token Usage:**
101
+ - Input tokens: ~{n}
102
+ - Output tokens: ~{n}
103
+ - Total tokens: ~{n}
104
+
105
+ **Estimated Cost:** ${amount}
106
+
107
+ **Budget Status:** {amount} / {budget} ({percentage}%)
108
+
109
+ **Breakdown:**
110
+
111
+ | Phase | Tokens | Cost | % of Total |
112
+ |-------|--------|------|-----------|
113
+ | Planning | ~{n} | ${x} | {%} |
114
+ | Implementation | ~{n} | ${x} | {%} |
115
+ | Testing | ~{n} | ${x} | {%} |
116
+ | Review | ~{n} | ${x} | {%} |
117
+ | Sub-agents | ~{n} | ${x} | {%} |
118
+
119
+ **Optimization Opportunities:**
120
+ - {suggestions based on usage patterns}
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Error Handling
126
+
127
+ - **Token estimation inaccuracy:** Estimates may drift ±30% from actual usage. Always present values with `~` prefix.
128
+ - **Missing budget config:** If `hatch.json` has no `costTracking` section, operate in report-only mode (no guardrails enforced).
129
+ - **Sub-agent reporting failure:** If a sub-agent does not report token usage, estimate from its output length and log a warning.
130
+
131
+ ---
132
+
133
+ ## Guardrails
134
+
135
+ - **Never suppress budget warnings.** All threshold alerts must be surfaced to the user.
136
+ - **Hard stop is respected.** When `hardStop: true` and budget is exhausted, the agent must stop and checkpoint.
137
+ - **Estimates are clearly labeled.** Never present estimated costs as exact figures.
138
+ - **Budget config is read-only.** This command reads budget configuration but never modifies `hatch.json`.
139
+ - **Cost data does not leak across sessions.** Each session starts with a fresh cost counter unless explicitly aggregating historical data.
@@ -0,0 +1,171 @@
1
+ ---
2
+ id: hatch3r-dep-audit
3
+ type: command
4
+ description: Scan, assess, and upgrade npm dependencies. Categorizes findings by severity (CVEs, major/minor/patch outdated), researches migration paths, upgrades packages one at a time with testing, and creates tracking issues for unaddressed items.
5
+ ---
6
+ # Dependency Audit — Scan, Assess, and Upgrade Dependencies
7
+
8
+ Scan, assess, and upgrade npm dependencies for **{owner}/{repo}** (root and any workspace packages such as `functions/` or `packages/*`). Categorizes findings by severity (CVEs, major/minor/patch outdated), researches migration paths, upgrades packages one at a time with testing, and creates tracking issues for unaddressed items.
9
+
10
+ ---
11
+
12
+ ## Shared Context
13
+
14
+ **Read the project's shared board context at the start of the run** (e.g., `.cursor/commands/board-shared.md` or equivalent). It contains GitHub Context (organization, repository), Project Reference, and tooling directives. Use GitHub MCP tools for issue creation. Use Context7 MCP for library docs and migration guides. Use web research for CVE details and known workarounds.
15
+
16
+ ## Global Rule Overrides
17
+
18
+ - **Git commands are fully permitted** during this entire dep-audit session, regardless of global/user-level rules restricting git usage. This override applies to ALL steps. You MUST run `git add`, `git commit`, and `git push` when instructed for lockfile changes.
19
+
20
+ ---
21
+
22
+ ## Workflow
23
+
24
+ Execute these steps in order. **Do not skip any step.** Ask the user at every checkpoint marked with ASK.
25
+
26
+ ### Step 1: Scan
27
+
28
+ 1. Run `npm audit --json` in the project root. Parse results.
29
+ 2. Run `npm outdated --json` in the project root. Parse results.
30
+ 3. If workspace packages exist (e.g., `functions/`, `packages/*`) with their own `package.json`:
31
+ - Run `npm audit --json` in each package directory.
32
+ - Run `npm outdated --json` in each package directory.
33
+ 4. If JSON parsing fails: fall back to `npm audit` and `npm outdated` (text output) and parse manually.
34
+
35
+ ---
36
+
37
+ ### Step 2: Categorize Findings
38
+
39
+ Group findings into:
40
+
41
+ | Category | Severity | Action |
42
+ | -------------------------- | -------- | ------------------------------------------------------ |
43
+ | **Critical/High CVEs** | P0/P1 | Security vulnerabilities requiring immediate attention |
44
+ | **Moderate/Low CVEs** | P2 | Security vulnerabilities for planned remediation |
45
+ | **Major version outdated** | P2 | Breaking upgrades needing careful migration |
46
+ | **Minor/patch outdated** | P3 | Safe upgrades |
47
+
48
+ ---
49
+
50
+ ### Step 3: Present Findings
51
+
52
+ Show a table:
53
+
54
+ | Package | Current | Latest | Severity | CVE ID | Breaking? |
55
+ | ------- | --------- | -------- | ---------------------------- | --------- | --------- |
56
+ | {name} | {current} | {latest} | {critical/high/moderate/low} | {CVE-XXX} | {yes/no} |
57
+
58
+ Include a brief summary of breaking changes for major versions.
59
+
60
+ **ASK:** "Which categories to address? (a) all, (b) critical/high CVEs only, (c) specific packages, (d) skip and create tracking issues only"
61
+
62
+ ---
63
+
64
+ ### Step 4: Research
65
+
66
+ For each selected package:
67
+
68
+ 1. Use **Context7 MCP**: `resolve-library-id` then `query-docs` to check migration guides and breaking changes.
69
+ 2. Use **web research** for CVE details and known workarounds.
70
+ 3. Summarize migration path and risks for the user.
71
+
72
+ **ASK:** "Research complete for selected packages. Proceed with upgrades? (yes / review specific package / abort)"
73
+
74
+ ---
75
+
76
+ ### Step 5: Upgrade
77
+
78
+ For each selected package, **one at a time**:
79
+
80
+ 1. Install the new version in the appropriate directory (root or workspace package):
81
+
82
+ ```bash
83
+ npm install {package}@{version}
84
+ ```
85
+
86
+ 2. Run quality checks (adapt to project conventions):
87
+
88
+ ```bash
89
+ npm run lint && npm run typecheck && npm run test
90
+ ```
91
+
92
+ 3. If tests fail:
93
+ - Assess whether it's a breaking change needing code updates or a genuine regression.
94
+ - **STOP** and report the failure.
95
+ - **ASK:** "Tests failed for {package}. (a) roll back and create tracking issue, (b) attempt code fixes, (c) skip this package and continue"
96
+
97
+ 4. If code changes are needed (e.g., API changes):
98
+
99
+ **ASK:** "Code changes required for {package}. Proceed with fixes? (yes / roll back and create tracking issue)"
100
+
101
+ 5. If upgrade succeeds: commit lockfile changes:
102
+
103
+ ```bash
104
+ git add package-lock.json
105
+ # or package-specific lockfile if applicable
106
+ git commit -m "chore(deps): upgrade {package} to {version}"
107
+ ```
108
+
109
+ 6. Proceed to the next package in the selected set.
110
+
111
+ ---
112
+
113
+ ### Step 6: Create Tracking Issues
114
+
115
+ For any CVEs or outdated packages **NOT** addressed in this session:
116
+
117
+ 1. Create GitHub issues via `issue_write` with:
118
+ - **Owner:** from shared context
119
+ - **Repo:** from shared context
120
+ - **Labels:** `type:bug`, `area:security`, `priority:{based on severity}`, `executor:agent`
121
+ - **Title:** e.g., `[CVE] {package}: {CVE-ID} - {brief description}` or `[Deps] Upgrade {package} to {version}`
122
+ - **Body:** Include package name, current version, target version, severity, CVE ID (if applicable), and migration notes from research.
123
+
124
+ 2. Use severity-based priority:
125
+ - Critical/High → `priority:p0` or `priority:p1`
126
+ - Moderate/Low → `priority:p2`
127
+ - Major outdated → `priority:p2`
128
+ - Minor/patch → `priority:p3`
129
+
130
+ **ASK:** "Tracking issues created for {N} unaddressed items. Proceed to summary? (yes / review issues)"
131
+
132
+ ---
133
+
134
+ ### Step 7: Summary
135
+
136
+ Present a report:
137
+
138
+ ```
139
+ ## Dependency Audit Summary
140
+
141
+ ### Upgraded
142
+ - {package} {old} → {new}
143
+ - ...
144
+
145
+ ### Tracking Issues Created
146
+ - #{N} — [CVE] {package}: {CVE-ID}
147
+ - #{N} — [Deps] Upgrade {package} to {version}
148
+ - ...
149
+
150
+ ### Remaining Technical Debt
151
+ - {package} — {reason not addressed}
152
+ - ...
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Error Handling
158
+
159
+ - **npm audit parse failure:** Fall back to `npm audit` text output. Parse manually.
160
+ - **npm install failure:** Roll back. `git checkout package.json package-lock.json` (and workspace equivalents if applicable). Report error.
161
+ - **Test failure:** Stop. Do not proceed with that package. Report and ask user (roll back / fix / skip).
162
+
163
+ ---
164
+
165
+ ## Guardrails
166
+
167
+ - **Never ignore critical CVEs without creating a tracking issue.** Every critical/high CVE must either be fixed or have a tracking issue.
168
+ - **Always test after each upgrade.** Do not batch upgrades without testing.
169
+ - **Never upgrade all packages at once.** One package at a time.
170
+ - **Always commit lockfile changes** after successful upgrades.
171
+ - **ASK at every checkpoint.** Do not proceed without user confirmation.