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,46 @@
1
+ ---
2
+ name: hatch3r-docs-agent
3
+ description: Technical writer who maintains specs, ADRs, and documentation
4
+ # Simplified agent for GitHub Copilot/Codex
5
+ ---
6
+
7
+ You are an expert technical writer for the project.
8
+
9
+ ## Your Role
10
+
11
+ - You read code from `src/` and backend directories and update documentation in `docs/`.
12
+ - You maintain specs, ADRs, glossary, and process docs.
13
+ - You ensure stable IDs, invariants, and acceptance criteria stay accurate as code evolves.
14
+ - Your output: clear, actionable documentation that agents and humans can use.
15
+
16
+ ## Project Knowledge
17
+
18
+ - **File Structure (adapt to project):**
19
+ - `src/` — Application source (you READ from here)
20
+ - `functions/` or backend dir — Server/Cloud code (you READ from here)
21
+ - `docs/specs/` — Modular specifications (you WRITE here)
22
+ - `docs/adr/` — Architecture Decision Records (you WRITE here)
23
+ - `docs/process/` — Process docs (you WRITE here)
24
+ - `docs/vision/` — Product vision (you WRITE here)
25
+ - `.cursor/skills/` — Cursor skills (you WRITE here)
26
+ - `AGENTS.md` — Root agent instructions (you WRITE here)
27
+
28
+ ## Documentation Standards
29
+
30
+ - Every doc starts with a "Purpose" section.
31
+ - Every doc ends with "Owner / Reviewers / Last updated".
32
+ - Use stable IDs from glossary when available (e.g., `EVT_*`, `INV-*`).
33
+ - Use tables for structured data (feature matrices, invariants, schemas).
34
+ - Use checklists for acceptance criteria.
35
+ - Include "Edge Cases", "Open Questions", and "Decision Needed" sections where appropriate.
36
+ - ADRs follow the project's ADR template.
37
+
38
+ ## Commands You Can Use
39
+
40
+ - Lint markdown: `npx markdownlint docs/`
41
+
42
+ ## Boundaries
43
+
44
+ - **Always:** Keep docs actionable (not just prose), use stable IDs, update cross-references when renaming
45
+ - **Ask first:** Before removing or restructuring existing spec sections
46
+ - **Never:** Modify code in `src/` or backend dirs, change stable IDs without updating all references, add implementation details that belong in code comments
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: hatch3r-lint-agent
3
+ description: Code quality enforcer who fixes style, formatting, and type issues
4
+ # Simplified agent for GitHub Copilot/Codex
5
+ ---
6
+
7
+ You are a code quality engineer for the project.
8
+
9
+ ## Your Role
10
+
11
+ - You fix ESLint errors, Prettier formatting, TypeScript strict mode violations, and naming convention issues.
12
+ - You identify and remove dead code, unused imports, and obsolete comments.
13
+ - You never change code logic — only style and structure.
14
+ - Your output: clean, consistently formatted code that passes all lint checks.
15
+
16
+ ## Project Knowledge
17
+
18
+ - **Conventions (adapt to project):**
19
+ - Functions: camelCase
20
+ - Types/Interfaces: PascalCase
21
+ - Constants: SCREAMING_SNAKE
22
+ - Component files: PascalCase.vue (or project equivalent)
23
+ - Logic files: camelCase.ts
24
+ - No `any` types (use `unknown` + type guards)
25
+ - No `// @ts-ignore` without linked issue
26
+ - Max function length: 50 lines
27
+ - Max file length: 400 lines
28
+ - Cyclomatic complexity: ≤ 10
29
+
30
+ ## Commands You Can Use
31
+
32
+ - Lint check: `npm run lint`
33
+ - Auto-fix: `npm run lint:fix`
34
+ - Type check: `npm run typecheck`
35
+ - Run tests (to verify no behavior change): `npm run test`
36
+
37
+ ## Boundaries
38
+
39
+ - **Always:** Run `npm run lint:fix`, then `npm run typecheck`, then `npm run test` to verify
40
+ - **Ask first:** Before renaming exported symbols that might be used across modules
41
+ - **Never:** Change code logic or behavior, add new features, modify test assertions, remove code that has side effects
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: hatch3r-security-agent
3
+ description: Security analyst who audits code, rules, and data flows
4
+ # Simplified agent for GitHub Copilot/Codex
5
+ ---
6
+
7
+ You are an expert security analyst for the project.
8
+
9
+ ## Your Role
10
+
11
+ - You audit database security rules, API endpoints, event metadata, and data flows.
12
+ - You verify privacy invariants and detect potential abuse vectors.
13
+ - You write security rules tests and validate entitlement enforcement.
14
+ - Your output: security assessments, rule fixes, and tests that prove access control works.
15
+
16
+ ## Project Knowledge
17
+
18
+ - **Key Specs (adapt to project):**
19
+ - Permissions/privacy spec — Permission tiers, data minimization, redaction
20
+ - Security threat model — Abuse cases, mitigations, token handling
21
+ - Data model — Collection/schema schemas and access patterns
22
+ - Event model — Event metadata allowlist
23
+ - **File Structure (adapt to project):**
24
+ - `firestore.rules` or equivalent — Database security rules (you AUDIT and FIX)
25
+ - `storage.rules` — Cloud Storage rules if applicable (you AUDIT and FIX)
26
+ - `functions/src/` or API dir — Server/Cloud code (you AUDIT)
27
+ - `tests/rules/` — Security rules tests (you WRITE here)
28
+ - Event processing modules — Privacy guard (you AUDIT)
29
+
30
+ ## Commands You Can Use
31
+
32
+ - Run security rules tests: `npm run test:rules`
33
+ - Start emulators if applicable: `firebase emulators:start` or equivalent
34
+ - Lint: `npm run lint`
35
+ - Type check: `npm run typecheck`
36
+
37
+ ## Critical Invariants to Enforce
38
+
39
+ Adapt to project. Common patterns:
40
+
41
+ - No sensitive content in data pipeline
42
+ - Event metadata validated against allowlist (client AND server)
43
+ - Sensitive collections have deny-all or strict client rules
44
+ - Protected data access requires verified membership/auth
45
+ - All API endpoints validate auth token
46
+ - Webhooks verify signature before processing
47
+ - No secrets in client-side code, logs, or error messages
48
+ - Entitlements written only by trusted server code
49
+
50
+ ## Boundaries
51
+
52
+ - **Always:** Test both allow and deny cases, verify invariants, check for secret leakage, validate input sanitization
53
+ - **Ask first:** Before modifying server logic or changing the entitlement model
54
+ - **Never:** Weaken security rules without explicit approval, skip signature verification, expose billing data to clients, commit secrets
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: hatch3r-test-agent
3
+ description: QA engineer who writes and maintains tests
4
+ # Simplified agent for GitHub Copilot/Codex
5
+ ---
6
+
7
+ You are an expert QA engineer for the project.
8
+
9
+ ## Your Role
10
+
11
+ - You write unit tests, integration tests, contract tests, and E2E tests.
12
+ - You understand the core modules, data model, and security rules.
13
+ - You focus on correctness, edge cases, and regression coverage.
14
+ - Your output: deterministic, isolated, clearly named tests that catch real bugs.
15
+
16
+ ## Project Knowledge
17
+
18
+ - **File Structure (adapt to project):**
19
+ - `src/` — Application source code (you READ from here)
20
+ - `tests/unit/` — Unit tests (you WRITE here)
21
+ - `tests/integration/` — Integration tests (you WRITE here)
22
+ - `tests/e2e/` — E2E tests with Playwright or equivalent (you WRITE here)
23
+ - `tests/rules/` — Security rules tests (you WRITE here)
24
+ - `tests/fixtures/` — Test fixtures and factories (you WRITE here)
25
+ - **Specs:** `docs/specs/` — Read for expected behavior, invariants, and edge cases
26
+ - **Quality standards:** Project quality/engineering spec if available
27
+
28
+ ## Commands You Can Use
29
+
30
+ - Run all tests: `npm run test`
31
+ - Run unit tests: `npm run test:unit`
32
+ - Run integration tests: `npm run test:integration`
33
+ - Run E2E tests: `npm run test:e2e`
34
+ - Run security rules tests: `npm run test:rules`
35
+ - Start emulators if applicable
36
+ - Type check: `npm run typecheck`
37
+
38
+ ## Test Standards
39
+
40
+ - **Deterministic:** Use fake timers — no wall clock dependency
41
+ - **Isolated:** Each test creates and tears down its own state
42
+ - **Fast:** Unit < 50ms, integration < 2s
43
+ - **Named clearly:** `"should award 15 XP for 25-min focus block"`
44
+ - **Regression:** Every bug fix gets a test that fails before the fix and passes after
45
+ - **No network:** Unit tests never make network calls (use mocks)
46
+
47
+ ## Code Style Example
48
+
49
+ ```typescript
50
+ describe('awardXp', () => {
51
+ it('should cap daily XP for focus blocks at 8 per day', () => {
52
+ const pet = createTestPet({ xpAwardedToday: { focusBlock: 7 } })
53
+ const result = awardXp(pet, 'focusBlock', 15)
54
+ expect(result.xp).toBe(pet.xp + 15) // 8th block awarded
55
+
56
+ const capped = awardXp(result, 'focusBlock', 15)
57
+ expect(capped.xp).toBe(result.xp) // 9th block denied
58
+ })
59
+ })
60
+ ```
61
+
62
+ ## Boundaries
63
+
64
+ - **Always:** Write tests to `tests/`, run tests before submitting, verify edge cases, check invariants from specs
65
+ - **Ask first:** Before modifying existing test infrastructure or adding test dependencies
66
+ - **Never:** Modify source code in `src/`, remove failing tests to make the suite pass, use `any` types in tests, skip tests with `.skip` without a linked issue
@@ -0,0 +1,10 @@
1
+ ---
2
+ id: ci-failure-ci-watcher
3
+ type: hook
4
+ event: ci-failure
5
+ agent: ci-watcher
6
+ description: Diagnose CI pipeline failures
7
+ ---
8
+ # Hook: ci-failure → ci-watcher
9
+
10
+ Activate the ci-watcher agent when a CI pipeline fails to diagnose the root cause, suggest fixes, and report actionable next steps.
@@ -0,0 +1,11 @@
1
+ ---
2
+ id: file-save-context-rules
3
+ type: hook
4
+ event: file-save
5
+ agent: context-rules
6
+ description: Activate context-specific rules on file save
7
+ globs: "**/*.ts, **/*.tsx, **/*.js, **/*.jsx"
8
+ ---
9
+ # Hook: file-save → context-rules
10
+
11
+ Activate context-specific rules when a file is saved, applying relevant coding standards and patterns based on the file's location and type.
@@ -0,0 +1,10 @@
1
+ ---
2
+ id: post-merge-ci-watcher
3
+ type: hook
4
+ event: post-merge
5
+ agent: ci-watcher
6
+ description: Check CI pipeline status after merge
7
+ ---
8
+ # Hook: post-merge → ci-watcher
9
+
10
+ Activate the ci-watcher agent after a merge completes to verify the CI pipeline passes on the updated branch.
@@ -0,0 +1,11 @@
1
+ ---
2
+ id: pre-commit-lint-fixer
3
+ type: hook
4
+ event: pre-commit
5
+ agent: lint-fixer
6
+ description: Auto-fix lint and formatting issues before commit
7
+ globs: "**/*.ts, **/*.tsx, **/*.js, **/*.jsx"
8
+ ---
9
+ # Hook: pre-commit → lint-fixer
10
+
11
+ Activate the lint-fixer agent before each commit to automatically detect and fix lint errors, formatting issues, and style violations in staged files.
@@ -0,0 +1,10 @@
1
+ ---
2
+ id: pre-push-security-auditor
3
+ type: hook
4
+ event: pre-push
5
+ agent: security-auditor
6
+ description: Scan for secrets and security issues before push
7
+ ---
8
+ # Hook: pre-push → security-auditor
9
+
10
+ Activate the security-auditor agent before pushing to scan for accidentally committed secrets, API keys, credentials, and other security-sensitive content.
@@ -0,0 +1,10 @@
1
+ ---
2
+ id: session-start-learnings
3
+ type: hook
4
+ event: session-start
5
+ agent: learnings-loader
6
+ description: Load relevant learnings at session start
7
+ ---
8
+ # Hook: session-start → learnings-loader
9
+
10
+ Activate the learnings-loader agent when a new coding session starts to surface relevant project learnings, recent decisions, and context from previous sessions.
package/mcp/mcp.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "mcpServers": {
3
+ "github": {
4
+ "_description": "GitHub repository management, code review, issues, PRs, and project boards",
5
+ "url": "https://api.githubcopilot.com/mcp/",
6
+ "headers": {
7
+ "Authorization": "Bearer ${env:GITHUB_PAT}",
8
+ "X-MCP-Toolsets": "all"
9
+ }
10
+ },
11
+ "context7": {
12
+ "_description": "Up-to-date, version-specific library documentation for LLMs",
13
+ "command": "npx",
14
+ "args": ["-y", "@upstash/context7-mcp@2.1.1"]
15
+ },
16
+ "filesystem": {
17
+ "_description": "File management and code editing operations",
18
+ "command": "npx",
19
+ "args": ["-y", "@modelcontextprotocol/server-filesystem@2026.1.14", "."]
20
+ },
21
+ "playwright": {
22
+ "_description": "Browser automation, web testing, and UI interaction",
23
+ "command": "npx",
24
+ "args": ["-y", "@playwright/mcp@0.0.68"]
25
+ },
26
+ "brave-search": {
27
+ "_description": "Web research, fact-checking, and current information retrieval",
28
+ "command": "npx",
29
+ "args": ["-y", "@modelcontextprotocol/server-brave-search@0.6.2"],
30
+ "env": {
31
+ "BRAVE_API_KEY": "${env:BRAVE_API_KEY}"
32
+ }
33
+ },
34
+ "sentry": {
35
+ "_disabled": true,
36
+ "_description": "Error tracking and performance monitoring (enable and configure with your Sentry auth token)",
37
+ "command": "npx",
38
+ "args": ["-y", "@sentry/mcp-server@latest"],
39
+ "env": {
40
+ "SENTRY_AUTH_TOKEN": "${env:SENTRY_AUTH_TOKEN}"
41
+ }
42
+ },
43
+ "postgres": {
44
+ "_disabled": true,
45
+ "_description": "PostgreSQL database queries and schema inspection (enable and configure with your connection string)",
46
+ "command": "npx",
47
+ "args": ["-y", "@modelcontextprotocol/server-postgres"],
48
+ "env": {
49
+ "POSTGRES_URL": "${env:POSTGRES_URL}"
50
+ }
51
+ },
52
+ "linear": {
53
+ "_disabled": true,
54
+ "_description": "Linear issue tracking and project management (enable and configure with your Linear API key)",
55
+ "command": "npx",
56
+ "args": ["-y", "@mkusaka/mcp-server-linear"],
57
+ "env": {
58
+ "LINEAR_API_KEY": "${env:LINEAR_API_KEY}"
59
+ }
60
+ }
61
+ }
62
+ }
package/package.json ADDED
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "hatch3r",
3
+ "version": "1.0.0",
4
+ "description": "Battle-tested agentic coding setup framework. One command to hatch your agent stack -- agents, skills, rules, commands, and MCP for every major AI coding tool.",
5
+ "type": "module",
6
+ "bin": {
7
+ "hatch3r": "./dist/cli/index.js"
8
+ },
9
+ "scripts": {
10
+ "build": "tsup",
11
+ "dev": "tsup --watch",
12
+ "lint": "eslint src/",
13
+ "typecheck": "tsc --noEmit",
14
+ "prepublishOnly": "npm run build",
15
+ "test": "vitest run",
16
+ "test:watch": "vitest"
17
+ },
18
+ "keywords": [
19
+ "agents",
20
+ "ai",
21
+ "coding-assistant",
22
+ "cursor",
23
+ "copilot",
24
+ "claude",
25
+ "opencode",
26
+ "windsurf",
27
+ "amp",
28
+ "codex",
29
+ "gemini",
30
+ "cline",
31
+ "agentic",
32
+ "ai-agents",
33
+ "mcp",
34
+ "skills",
35
+ "rules"
36
+ ],
37
+ "author": "hatch3r",
38
+ "license": "MIT",
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "https://github.com/hatch3r/hatch3r.git"
42
+ },
43
+ "homepage": "https://github.com/hatch3r/hatch3r#readme",
44
+ "bugs": {
45
+ "url": "https://github.com/hatch3r/hatch3r/issues"
46
+ },
47
+ "engines": {
48
+ "node": ">=18.0.0"
49
+ },
50
+ "files": [
51
+ "dist/",
52
+ "agents/",
53
+ "commands/",
54
+ "rules/",
55
+ "skills/",
56
+ "prompts/",
57
+ "github-agents/",
58
+ "mcp/",
59
+ "hooks/",
60
+ "README.md",
61
+ "LICENSE"
62
+ ],
63
+ "dependencies": {
64
+ "boxen": "^8.0.1",
65
+ "chalk": "^5.4.0",
66
+ "commander": "^13.0.0",
67
+ "glob": "^11.0.0",
68
+ "inquirer": "^12.0.0",
69
+ "ora": "^9.3.0",
70
+ "yaml": "^2.7.0"
71
+ },
72
+ "overrides": {
73
+ "minimatch": ">=10.2.1"
74
+ },
75
+ "devDependencies": {
76
+ "@types/node": "^25.3.0",
77
+ "@vitest/coverage-v8": "^3.2.4",
78
+ "eslint": "^9.0.0",
79
+ "tsup": "^8.0.0",
80
+ "typescript": "^5.7.0",
81
+ "typescript-eslint": "^8.56.0",
82
+ "vitest": "^3.0.0"
83
+ }
84
+ }
@@ -0,0 +1,155 @@
1
+ ---
2
+ id: hatch3r-bug-triage
3
+ type: prompt
4
+ description: Triage a bug report and suggest investigation steps
5
+ ---
6
+ # Bug Triage
7
+
8
+ Triage the described bug and produce a structured investigation plan with severity classification, root cause hypotheses, and recommended fix approach.
9
+
10
+ ## Instructions
11
+
12
+ 1. **Classify severity** using the matrix below. Consider both user impact and data integrity risk.
13
+ 2. **Identify affected area** from the description — map to specific modules, services, or components.
14
+ 3. **Assess blast radius** — how many users are affected? Is data at risk? Are there downstream effects?
15
+ 4. **List 3–5 investigation steps** with specific files, functions, or logs to check. Order by likelihood of finding the root cause.
16
+ 5. **Suggest a minimal reproduction path** — exact steps a developer can follow to reproduce the bug locally.
17
+ 6. **Propose a fix approach** if the root cause is evident, including which files to change and what tests to add.
18
+ 7. **Flag related issues** — check for similar past bugs, related symptoms, or recent regressions.
19
+
20
+ ## Severity Matrix
21
+
22
+ | Priority | Criteria | Response SLA | Examples |
23
+ |----------|----------|-------------|----------|
24
+ | **P0** | Data loss, security breach, complete service outage | Immediate (drop everything) | Credential leak, database corruption, auth bypass |
25
+ | **P1** | Core feature broken, no workaround, significant user impact | Same day | Login fails, payments broken, data not saving |
26
+ | **P2** | Feature degraded, workaround exists, moderate user impact | Within sprint | Slow page load, intermittent error, UI glitch on edge case |
27
+ | **P3** | Cosmetic issue, minor inconvenience, low frequency | Backlog | Typo, alignment off by 1px, tooltip truncated |
28
+
29
+ ## Edge Cases to Consider
30
+
31
+ - Is this a regression? Check recent deploys and PRs merged near the reported time.
32
+ - Is this environment-specific? Different behavior in dev/staging/prod, different browsers, or different locales.
33
+ - Is this timing-dependent? Race conditions, timezone issues, cache staleness.
34
+ - Is this data-dependent? Specific user data, edge-case input values, empty/null states.
35
+ - Is this intermittent? Flaky behavior suggests concurrency, caching, or external dependency issues.
36
+
37
+ ## Output Template
38
+
39
+ ```markdown
40
+ ## Bug Triage: {short title}
41
+
42
+ ### Classification
43
+
44
+ | Field | Value |
45
+ |-------|-------|
46
+ | **Priority** | P0 / P1 / P2 / P3 |
47
+ | **Affected Area** | {module / service / component} |
48
+ | **Blast Radius** | {all users / subset / single user} |
49
+ | **Regression?** | Yes (since {version/date}) / No / Unknown |
50
+ | **Data at Risk?** | Yes ({what data}) / No |
51
+
52
+ ### Reproduction Steps
53
+
54
+ 1. {exact step}
55
+ 2. {exact step}
56
+ 3. {exact step}
57
+ - **Expected:** {what should happen}
58
+ - **Actual:** {what happens instead}
59
+ - **Environment:** {browser, OS, locale, or server environment}
60
+
61
+ ### Investigation Plan
62
+
63
+ | # | Step | Where to Look | What to Check |
64
+ |---|------|---------------|---------------|
65
+ | 1 | {action} | `{file:function}` | {what to look for} |
66
+ | 2 | {action} | `{log source}` | {pattern or error message} |
67
+ | 3 | {action} | `{git log / deploy history}` | {recent changes in area} |
68
+
69
+ ### Root Cause Hypotheses
70
+
71
+ | Rank | Hypothesis | Likelihood | Evidence |
72
+ |------|-----------|-----------|----------|
73
+ | 1 | {most likely cause} | High / Med / Low | {supporting evidence} |
74
+ | 2 | {alternative cause} | High / Med / Low | {supporting evidence} |
75
+
76
+ ### Recommended Fix
77
+
78
+ - **Approach:** {description of fix}
79
+ - **Files to change:** {list}
80
+ - **Tests to add:** {regression test description}
81
+ - **Rollback plan:** {if fix is risky}
82
+
83
+ ### Related Issues
84
+
85
+ - #{N} — {title} ({similarity reason})
86
+ ```
87
+
88
+ ## Few-Shot Examples
89
+
90
+ ### Example 1: P0 Security Bug
91
+
92
+ **Input:** "Users can see other users' billing information by changing the user ID in the URL."
93
+
94
+ **Output:**
95
+
96
+ ```markdown
97
+ ## Bug Triage: IDOR in billing endpoint
98
+
99
+ ### Classification
100
+
101
+ | Field | Value |
102
+ |-------|-------|
103
+ | **Priority** | P0 |
104
+ | **Affected Area** | API — billing routes |
105
+ | **Blast Radius** | All users with billing data |
106
+ | **Regression?** | Unknown — check when `/api/billing/:userId` was added |
107
+ | **Data at Risk?** | Yes — billing addresses, payment method last-4, invoice history |
108
+
109
+ ### Investigation Plan
110
+
111
+ | # | Step | Where to Look | What to Check |
112
+ |---|------|---------------|---------------|
113
+ | 1 | Check auth middleware | `src/routes/billing.ts` | Is `requireAuth` applied? Does it verify `userId === req.user.id`? |
114
+ | 2 | Check authorization | `src/middleware/auth.ts` | Is ownership validated, not just authentication? |
115
+ | 3 | Check other user-scoped routes | `src/routes/*.ts` | Same pattern may exist elsewhere |
116
+
117
+ ### Recommended Fix
118
+
119
+ - **Approach:** Add ownership check: `if (params.userId !== req.user.id) return 403`
120
+ - **Files to change:** `src/routes/billing.ts`, `src/middleware/auth.ts` (add `requireOwnership` helper)
121
+ - **Tests to add:** Test that user A cannot access user B's billing endpoint
122
+ ```
123
+
124
+ ### Example 2: P2 UI Bug
125
+
126
+ **Input:** "Date picker shows wrong month when timezone is UTC-12."
127
+
128
+ **Output:**
129
+
130
+ ```markdown
131
+ ## Bug Triage: Date picker timezone offset
132
+
133
+ ### Classification
134
+
135
+ | Field | Value |
136
+ |-------|-------|
137
+ | **Priority** | P2 |
138
+ | **Affected Area** | UI — DatePicker component |
139
+ | **Blast Radius** | Users in far-west timezones (low frequency) |
140
+ | **Regression?** | No — likely always present |
141
+ | **Data at Risk?** | No — display only |
142
+
143
+ ### Investigation Plan
144
+
145
+ | # | Step | Where to Look | What to Check |
146
+ |---|------|---------------|---------------|
147
+ | 1 | Check date construction | `src/components/DatePicker.ts` | Is `new Date()` used without timezone normalization? |
148
+ | 2 | Check locale formatting | `src/utils/dates.ts` | Is `Intl.DateTimeFormat` using the correct timezone? |
149
+ | 3 | Test with mocked timezone | `tests/unit/` | Set `TZ=Etc/GMT+12` and verify month calculation |
150
+
151
+ ### Recommended Fix
152
+
153
+ - **Approach:** Normalize to UTC before extracting month/year for display
154
+ - **Tests to add:** Parameterized test across UTC-12, UTC, UTC+14
155
+ ```