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.
- package/LICENSE +21 -0
- package/README.md +437 -0
- package/agents/hatch3r-a11y-auditor.md +126 -0
- package/agents/hatch3r-architect.md +160 -0
- package/agents/hatch3r-ci-watcher.md +123 -0
- package/agents/hatch3r-context-rules.md +97 -0
- package/agents/hatch3r-dependency-auditor.md +164 -0
- package/agents/hatch3r-devops.md +138 -0
- package/agents/hatch3r-docs-writer.md +97 -0
- package/agents/hatch3r-implementer.md +162 -0
- package/agents/hatch3r-learnings-loader.md +108 -0
- package/agents/hatch3r-lint-fixer.md +104 -0
- package/agents/hatch3r-perf-profiler.md +123 -0
- package/agents/hatch3r-researcher.md +642 -0
- package/agents/hatch3r-reviewer.md +81 -0
- package/agents/hatch3r-security-auditor.md +119 -0
- package/agents/hatch3r-test-writer.md +134 -0
- package/commands/hatch3r-agent-customize.md +146 -0
- package/commands/hatch3r-api-spec.md +49 -0
- package/commands/hatch3r-benchmark.md +50 -0
- package/commands/hatch3r-board-fill.md +504 -0
- package/commands/hatch3r-board-init.md +315 -0
- package/commands/hatch3r-board-pickup.md +672 -0
- package/commands/hatch3r-board-refresh.md +198 -0
- package/commands/hatch3r-board-shared.md +369 -0
- package/commands/hatch3r-bug-plan.md +410 -0
- package/commands/hatch3r-codebase-map.md +1182 -0
- package/commands/hatch3r-command-customize.md +94 -0
- package/commands/hatch3r-context-health.md +112 -0
- package/commands/hatch3r-cost-tracking.md +139 -0
- package/commands/hatch3r-dep-audit.md +171 -0
- package/commands/hatch3r-feature-plan.md +379 -0
- package/commands/hatch3r-healthcheck.md +307 -0
- package/commands/hatch3r-hooks.md +282 -0
- package/commands/hatch3r-learn.md +217 -0
- package/commands/hatch3r-migration-plan.md +51 -0
- package/commands/hatch3r-onboard.md +56 -0
- package/commands/hatch3r-project-spec.md +1153 -0
- package/commands/hatch3r-recipe.md +179 -0
- package/commands/hatch3r-refactor-plan.md +426 -0
- package/commands/hatch3r-release.md +328 -0
- package/commands/hatch3r-roadmap.md +556 -0
- package/commands/hatch3r-rule-customize.md +114 -0
- package/commands/hatch3r-security-audit.md +370 -0
- package/commands/hatch3r-skill-customize.md +93 -0
- package/commands/hatch3r-workflow.md +377 -0
- package/dist/cli/hooks-ZOTFDEA3.js +59 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +3584 -0
- package/github-agents/hatch3r-docs-agent.md +46 -0
- package/github-agents/hatch3r-lint-agent.md +41 -0
- package/github-agents/hatch3r-security-agent.md +54 -0
- package/github-agents/hatch3r-test-agent.md +66 -0
- package/hooks/hatch3r-ci-failure.md +10 -0
- package/hooks/hatch3r-file-save.md +11 -0
- package/hooks/hatch3r-post-merge.md +10 -0
- package/hooks/hatch3r-pre-commit.md +11 -0
- package/hooks/hatch3r-pre-push.md +10 -0
- package/hooks/hatch3r-session-start.md +10 -0
- package/mcp/mcp.json +62 -0
- package/package.json +84 -0
- package/prompts/hatch3r-bug-triage.md +155 -0
- package/prompts/hatch3r-code-review.md +131 -0
- package/prompts/hatch3r-pr-description.md +173 -0
- package/rules/hatch3r-accessibility-standards.md +77 -0
- package/rules/hatch3r-accessibility-standards.mdc +75 -0
- package/rules/hatch3r-agent-orchestration.md +160 -0
- package/rules/hatch3r-api-design.md +176 -0
- package/rules/hatch3r-api-design.mdc +176 -0
- package/rules/hatch3r-browser-verification.md +73 -0
- package/rules/hatch3r-browser-verification.mdc +73 -0
- package/rules/hatch3r-ci-cd.md +70 -0
- package/rules/hatch3r-ci-cd.mdc +68 -0
- package/rules/hatch3r-code-standards.md +102 -0
- package/rules/hatch3r-code-standards.mdc +100 -0
- package/rules/hatch3r-component-conventions.md +102 -0
- package/rules/hatch3r-component-conventions.mdc +102 -0
- package/rules/hatch3r-data-classification.md +85 -0
- package/rules/hatch3r-data-classification.mdc +83 -0
- package/rules/hatch3r-dependency-management.md +17 -0
- package/rules/hatch3r-dependency-management.mdc +15 -0
- package/rules/hatch3r-error-handling.md +17 -0
- package/rules/hatch3r-error-handling.mdc +15 -0
- package/rules/hatch3r-feature-flags.md +112 -0
- package/rules/hatch3r-feature-flags.mdc +112 -0
- package/rules/hatch3r-git-conventions.md +47 -0
- package/rules/hatch3r-git-conventions.mdc +45 -0
- package/rules/hatch3r-i18n.md +90 -0
- package/rules/hatch3r-i18n.mdc +90 -0
- package/rules/hatch3r-learning-consult.md +29 -0
- package/rules/hatch3r-learning-consult.mdc +27 -0
- package/rules/hatch3r-migrations.md +17 -0
- package/rules/hatch3r-migrations.mdc +15 -0
- package/rules/hatch3r-observability.md +165 -0
- package/rules/hatch3r-observability.mdc +165 -0
- package/rules/hatch3r-performance-budgets.md +109 -0
- package/rules/hatch3r-performance-budgets.mdc +109 -0
- package/rules/hatch3r-secrets-management.md +76 -0
- package/rules/hatch3r-secrets-management.mdc +74 -0
- package/rules/hatch3r-security-patterns.md +211 -0
- package/rules/hatch3r-security-patterns.mdc +211 -0
- package/rules/hatch3r-testing.md +89 -0
- package/rules/hatch3r-testing.mdc +87 -0
- package/rules/hatch3r-theming.md +51 -0
- package/rules/hatch3r-theming.mdc +51 -0
- package/rules/hatch3r-tooling-hierarchy.md +92 -0
- package/rules/hatch3r-tooling-hierarchy.mdc +79 -0
- package/skills/hatch3r-a11y-audit/SKILL.md +131 -0
- package/skills/hatch3r-agent-customize/SKILL.md +75 -0
- package/skills/hatch3r-api-spec/SKILL.md +66 -0
- package/skills/hatch3r-architecture-review/SKILL.md +96 -0
- package/skills/hatch3r-bug-fix/SKILL.md +129 -0
- package/skills/hatch3r-ci-pipeline/SKILL.md +76 -0
- package/skills/hatch3r-command-customize/SKILL.md +67 -0
- package/skills/hatch3r-context-health/SKILL.md +76 -0
- package/skills/hatch3r-cost-tracking/SKILL.md +65 -0
- package/skills/hatch3r-dep-audit/SKILL.md +82 -0
- package/skills/hatch3r-feature/SKILL.md +129 -0
- package/skills/hatch3r-gh-agentic-workflows/SKILL.md +150 -0
- package/skills/hatch3r-incident-response/SKILL.md +86 -0
- package/skills/hatch3r-issue-workflow/SKILL.md +139 -0
- package/skills/hatch3r-logical-refactor/SKILL.md +73 -0
- package/skills/hatch3r-migration/SKILL.md +76 -0
- package/skills/hatch3r-perf-audit/SKILL.md +114 -0
- package/skills/hatch3r-pr-creation/SKILL.md +85 -0
- package/skills/hatch3r-qa-validation/SKILL.md +86 -0
- package/skills/hatch3r-recipe/SKILL.md +67 -0
- package/skills/hatch3r-refactor/SKILL.md +86 -0
- package/skills/hatch3r-release/SKILL.md +93 -0
- package/skills/hatch3r-rule-customize/SKILL.md +70 -0
- package/skills/hatch3r-skill-customize/SKILL.md +67 -0
- 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
|
+
```
|