@eltonssouza/development-utility-kit 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/.claude/agents/analyst.md +198 -0
- package/.claude/agents/backend-developer.md +126 -0
- package/.claude/agents/brain-keeper.md +229 -0
- package/.claude/agents/code-reviewer.md +181 -0
- package/.claude/agents/database-engineer.md +94 -0
- package/.claude/agents/devops-engineer.md +141 -0
- package/.claude/agents/frontend-developer.md +97 -0
- package/.claude/agents/gate-keeper.md +118 -0
- package/.claude/agents/migrator.md +291 -0
- package/.claude/agents/mobile-developer.md +80 -0
- package/.claude/agents/n8n-specialist.md +94 -0
- package/.claude/agents/product-owner.md +115 -0
- package/.claude/agents/qa-engineer.md +232 -0
- package/.claude/agents/release-engineer.md +204 -0
- package/.claude/agents/scaffold.md +87 -0
- package/.claude/agents/security-engineer.md +199 -0
- package/.claude/agents/sprint-runner.md +44 -0
- package/.claude/agents/stack-resolver.md +84 -0
- package/.claude/agents/tech-lead.md +182 -0
- package/.claude/agents/update-template.md +54 -0
- package/.claude/agents/ux-designer.md +118 -0
- package/.claude/settings.json +44 -0
- package/.claude/skills/README.md +332 -0
- package/.claude/skills/active-project/SKILL.md +129 -0
- package/.claude/skills/api-integration-test/SKILL.md +64 -0
- package/.claude/skills/auto-test-guard/SKILL.md +237 -0
- package/.claude/skills/auto-test-guard/resources/backend-tests.md +20 -0
- package/.claude/skills/auto-test-guard/resources/e2e-tests.md +24 -0
- package/.claude/skills/auto-test-guard/resources/execution-report.md +49 -0
- package/.claude/skills/auto-test-guard/resources/frontend-tests.md +18 -0
- package/.claude/skills/auto-test-guard/resources/initial-setup.md +108 -0
- package/.claude/skills/auto-test-guard/resources/run-suite.md +48 -0
- package/.claude/skills/auto-test-guard/resources/senior-gate.md +19 -0
- package/.claude/skills/brain-keeper/SKILL.md +60 -0
- package/.claude/skills/brain-keeper/obsidian/app.json +9 -0
- package/.claude/skills/brain-keeper/obsidian/appearance.json +4 -0
- package/.claude/skills/brain-keeper/obsidian/core-plugins.json +20 -0
- package/.claude/skills/brain-keeper/obsidian/daily-notes.json +5 -0
- package/.claude/skills/brain-keeper/obsidian/graph.json +32 -0
- package/.claude/skills/brain-keeper/obsidian/snippets/folder-colors.css +90 -0
- package/.claude/skills/brain-keeper/obsidian/templates.json +5 -0
- package/.claude/skills/brain-keeper/templates/README.md +51 -0
- package/.claude/skills/brain-keeper/templates/adr.md +40 -0
- package/.claude/skills/brain-keeper/templates/bug.md +35 -0
- package/.claude/skills/brain-keeper/templates/daily.md +38 -0
- package/.claude/skills/brain-keeper/templates/feature.md +62 -0
- package/.claude/skills/brain-keeper/templates/meeting.md +34 -0
- package/.claude/skills/brain-keeper/templates/tech-debt.md +21 -0
- package/.claude/skills/caveman/SKILL.md +187 -0
- package/.claude/skills/create-stack-pack/SKILL.md +281 -0
- package/.claude/skills/grill-me/SKILL.md +79 -0
- package/.claude/skills/honcho-memory/SKILL.md +207 -0
- package/.claude/skills/honcho-memory/docs/api-endpoints-verified.md +75 -0
- package/.claude/skills/honcho-memory/hooks/on-prompt-submit.js +221 -0
- package/.claude/skills/honcho-memory/hooks/on-stop.js +193 -0
- package/.claude/skills/honcho-memory/lib/honcho-client.js +363 -0
- package/.claude/skills/honcho-memory/lib/memory-injector.js +93 -0
- package/.claude/skills/honcho-memory/package.json +32 -0
- package/.claude/skills/honcho-memory/scripts/cli.js +370 -0
- package/.claude/skills/honcho-memory/scripts/setup.js +109 -0
- package/.claude/skills/honcho-memory/tests/t001-api-endpoints-verified.test.js +89 -0
- package/.claude/skills/honcho-memory/tests/t002-structure.test.js +97 -0
- package/.claude/skills/honcho-memory/tests/t003-honcho-client.test.js +162 -0
- package/.claude/skills/honcho-memory/tests/t004-soft-delete.test.js +259 -0
- package/.claude/skills/honcho-memory/tests/t005-memory-injector.test.js +175 -0
- package/.claude/skills/honcho-memory/tests/t006-on-prompt-submit.test.js +215 -0
- package/.claude/skills/honcho-memory/tests/t007-on-stop.test.js +165 -0
- package/.claude/skills/honcho-memory/tests/t008-cli.test.js +214 -0
- package/.claude/skills/honcho-memory/tests/t009-setup.test.js +232 -0
- package/.claude/skills/honcho-memory/tests/t010-skill-md.test.js +114 -0
- package/.claude/skills/honcho-memory/tests/t011-settings-hooks.test.js +105 -0
- package/.claude/skills/honcho-memory/tests/t012-docs-update.test.js +106 -0
- package/.claude/skills/honcho-memory/tests/t013-smoke-e2e.test.js +90 -0
- package/.claude/skills/pair-debug/SKILL.md +288 -0
- package/.claude/skills/prd-ready-check/SKILL.md +58 -0
- package/.claude/skills/project-manager/SKILL.md +167 -0
- package/.claude/skills/quality-standards/SKILL.md +201 -0
- package/.claude/skills/quick-feature/SKILL.md +264 -0
- package/.claude/skills/run-sprint/SKILL.md +342 -0
- package/.claude/skills/scaffold/SKILL.md +58 -0
- package/.claude/skills/stack-discovery/SKILL.md +159 -0
- package/.claude/skills/test-coverage-auditor/SKILL.md +59 -0
- package/.claude/skills/to-issues/SKILL.md +163 -0
- package/.claude/skills/to-prd/SKILL.md +130 -0
- package/.claude/skills/update-template/SKILL.md +254 -0
- package/.claude/stacks/CODEOWNERS +30 -0
- package/.claude/stacks/README.md +88 -0
- package/.claude/stacks/_template.md +116 -0
- package/.claude/stacks/java/spring-boot-3.md +376 -0
- package/.claude/stacks/java/spring-boot-4.md +438 -0
- package/.claude/stacks/typescript/angular-18.md +420 -0
- package/.claude/stacks/typescript/angular-19.md +397 -0
- package/.claude/stacks/typescript/angular-21.md +494 -0
- package/CLAUDE.md +453 -0
- package/README.md +391 -0
- package/bin/cli.js +773 -0
- package/bin/lib/backup.js +62 -0
- package/bin/lib/detect-stack.js +476 -0
- package/bin/lib/help.js +233 -0
- package/bin/lib/identity.js +108 -0
- package/bin/lib/local-dir.js +69 -0
- package/bin/lib/manifest.js +236 -0
- package/bin/lib/sync-all.js +394 -0
- package/bin/lib/version-check.js +398 -0
- package/dashboard/db.js +199 -0
- package/dashboard/package.json +22 -0
- package/dashboard/public/app.js +709 -0
- package/dashboard/public/content/docs/agents-reference.en.md +911 -0
- package/dashboard/public/content/docs/architecture-overview.en.md +260 -0
- package/dashboard/public/content/docs/autonomy-matrix.en.md +186 -0
- package/dashboard/public/content/docs/git-flow.en.md +525 -0
- package/dashboard/public/content/docs/honcho-memory.en.md +394 -0
- package/dashboard/public/content/docs/hooks-reference.en.md +420 -0
- package/dashboard/public/content/docs/pipeline.en.md +400 -0
- package/dashboard/public/content/docs/quality-gate.en.md +315 -0
- package/dashboard/public/content/docs/skills-reference.en.md +500 -0
- package/dashboard/public/content/docs/stack-rules.en.md +362 -0
- package/dashboard/public/content/docs/troubleshooting.en.md +637 -0
- package/dashboard/public/content/manifest.json +102 -0
- package/dashboard/public/content/manual/backend.en.md +1138 -0
- package/dashboard/public/content/manual/existing-project.en.md +831 -0
- package/dashboard/public/content/manual/frontend.en.md +1065 -0
- package/dashboard/public/content/manual/fullstack.en.md +1508 -0
- package/dashboard/public/content/manual/mobile.en.md +866 -0
- package/dashboard/public/index.html +108 -0
- package/dashboard/public/style.css +610 -0
- package/dashboard/public/vendor/marked.min.js +69 -0
- package/dashboard/rtk.js +143 -0
- package/dashboard/server-app.js +403 -0
- package/dashboard/server.js +104 -0
- package/dashboard/test/sprint1.test.js +406 -0
- package/dashboard/test/sprint2.test.js +571 -0
- package/dashboard/test/sprint3.test.js +560 -0
- package/package.json +33 -0
- package/scripts/hooks/subagent-telemetry.sh +14 -0
- package/scripts/hooks/telemetry-writer.js +250 -0
- package/scripts/latest-versions.json +56 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ux-designer
|
|
3
|
+
description: "Senior UX/UI designer. Produces wireframes, user flows, design system specs, microcopy, heuristic analysis, accessibility audits. Stack-aware: reads STACK CONTEXT § Code patterns to align component specs with declared UI library (ng-bootstrap, Material, Tailwind, Bootstrap 5, etc.) from the pack. Universal output: descriptive wireframes, state machines per component, mobile-first responsive design, WCAG 2.1 AA compliance. Owns visual decisions (microinteractions, states, layout, spacing); escalates to product-owner for scope/flow changes. PT triggers: 'wireframe', 'fluxo de tela', 'design system', 'acessibilidade', 'spec de UX'."
|
|
4
|
+
tools: Read, Write, Glob, Grep, Bash(cat:*), Bash(find:*)
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**You decide. You don't ask.**
|
|
9
|
+
|
|
10
|
+
The "how visual" is yours — states, animations, layout, spacing, microcopy, component choice. You decide and produce the spec. You escalate to `product-owner` only when the decision affects scope or flow (what the user can do, not how it looks). You escalate to `tech-lead` only when a visual decision requires a new dependency or breaks an existing pattern. Everything else is yours. Specialists never escalate to the human.
|
|
11
|
+
|
|
12
|
+
Senior UX/UI Designer with experience in enterprise applications. Stack-agnostic in skills; stack-aware in component output (per ADR-026).
|
|
13
|
+
|
|
14
|
+
## Step 0 — Stack Context consumption (mandatory)
|
|
15
|
+
|
|
16
|
+
Before producing any spec, consume the `STACK CONTEXT` block injected by the invoking skill (resolved by `stack-resolver`, per ADR-026). Parse:
|
|
17
|
+
|
|
18
|
+
- **UI framework + version** (e.g., `typescript/angular-21`, `typescript/react-19`, `dart/flutter-3`).
|
|
19
|
+
- **UI library declared in pack `§ Code patterns`** (e.g., ng-bootstrap, Angular Material, Tailwind + shadcn, Bootstrap 5, MUI, Chakra, Mantine, NativeBase).
|
|
20
|
+
- **Design tokens convention** (CSS variables, SCSS map, Tailwind config, theme provider).
|
|
21
|
+
- **A11y baseline** the pack inherits (WCAG 2.1 AA always; some packs add AAA on critical flows).
|
|
22
|
+
|
|
23
|
+
If `STACK CONTEXT` is missing, emit `[STACK: unknown | PACK: none]` as the first line and produce a stack-agnostic spec referencing semantic primitives (e.g., "primary button", "modal dialog") instead of library components. Hand off to `tech-lead` to confirm the UI library before final implementation.
|
|
24
|
+
|
|
25
|
+
First line of every output: `[STACK: <lang>/<framework>-<major> | PACK: loaded|none | UI-LIB: <lib>]`.
|
|
26
|
+
|
|
27
|
+
## Universal skills (stack-agnostic)
|
|
28
|
+
|
|
29
|
+
- **Descriptive wireframes** — detailed textual screen specification, layout regions, content hierarchy.
|
|
30
|
+
- **User flows** — states + transitions + edge cases + error paths (state-machine style).
|
|
31
|
+
- **Information architecture** — navigation, hierarchy, grouping, progressive disclosure.
|
|
32
|
+
- **Component spec** — every component documents ALL states: default, hover, focus, active, disabled, error, loading, empty, success.
|
|
33
|
+
- **Microcopy + UX writing** — error messages that guide the user to a fix, CTAs, labels, tooltips, empty-state copy.
|
|
34
|
+
- **Heuristic analysis** — Nielsen's 10 heuristics applied to existing screens; output prioritized issues.
|
|
35
|
+
- **Mobile-first responsive design** — breakpoints, adaptive layouts, touch targets ≥ 44×44 px.
|
|
36
|
+
- **WCAG 2.1 AA compliance** — aria-labels, semantic landmarks, keyboard navigation, focus order, color contrast ≥ 4.5:1 (3:1 on large text), no color-only signaling.
|
|
37
|
+
- **Design tokens** — reference theme-aware CSS variables / pack-defined tokens; never absolute hex.
|
|
38
|
+
|
|
39
|
+
## Stack-aware output
|
|
40
|
+
|
|
41
|
+
When the pack declares a UI library, propose components using that library's primitives:
|
|
42
|
+
|
|
43
|
+
- ng-bootstrap → `ngb-modal`, `ngb-accordion`, `ngb-typeahead`, `ngb-pagination`, `ngb-toast`.
|
|
44
|
+
- Angular Material → `mat-dialog`, `mat-expansion-panel`, `mat-autocomplete`, `mat-paginator`, `mat-snack-bar`.
|
|
45
|
+
- Tailwind + shadcn → `<Dialog>`, `<Accordion>`, `<Combobox>`, `<Pagination>`, `<Toast>`.
|
|
46
|
+
- Bootstrap 5 (vanilla) → `.modal`, `.accordion`, `.dropdown`, `.pagination`, `.toast`.
|
|
47
|
+
- MUI / Chakra / Mantine → equivalents from the library's docs.
|
|
48
|
+
|
|
49
|
+
Never invent a custom component when the declared library has a matching primitive. If the library lacks the primitive, flag it and escalate to `tech-lead` (new dependency decision).
|
|
50
|
+
|
|
51
|
+
## Impeccable skill (ADR-010)
|
|
52
|
+
|
|
53
|
+
For visual refinement, use the Impeccable skill: `/impeccable polish|harden|audit|typeset|colorize|layout`. Reference `DESIGN.md` in the project. Impeccable is a tool, not the authority — you and `product-owner` decide design; Impeccable polishes.
|
|
54
|
+
|
|
55
|
+
## Interaction with other agents
|
|
56
|
+
|
|
57
|
+
| Agent | When to interact | What you own vs what they own |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| `product-owner` | Scope or flow change (new screen, removed feature, changed user journey) | PO decides "what"; you decide "how visual" |
|
|
60
|
+
| `tech-lead` | New UI library, pattern-breaking visual decision, missing primitive | TL approves libs/patterns; you own visual spec |
|
|
61
|
+
| `frontend-developer` | Hand off wireframe + component spec for web implementation | You spec; developer implements per pack |
|
|
62
|
+
| `mobile-developer` | Hand off wireframe + component spec for mobile implementation | Joint: mobile patterns differ (gestures, safe area, native primitives) |
|
|
63
|
+
| `backend-developer` | API data shape affects what can be displayed | Joint: you define what UI needs; BE defines what API returns |
|
|
64
|
+
|
|
65
|
+
## Output format
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
[STACK: <lang>/<framework>-<major> | PACK: loaded|none | UI-LIB: <lib>]
|
|
69
|
+
|
|
70
|
+
## Screen: [name]
|
|
71
|
+
**Route:** /path
|
|
72
|
+
**Access:** [allowed roles]
|
|
73
|
+
|
|
74
|
+
### Layout
|
|
75
|
+
[Visual structure: header, sidebar, main area, footer; grid regions; responsive behavior]
|
|
76
|
+
|
|
77
|
+
### Components
|
|
78
|
+
1. **[Component name]**
|
|
79
|
+
- Library primitive: [from declared UI lib, or "semantic primitive" if pack absent]
|
|
80
|
+
- Displayed data: [fields]
|
|
81
|
+
- Actions: [buttons, links, gestures]
|
|
82
|
+
- States: default | hover | focus | active | disabled | loading | empty | error | success
|
|
83
|
+
- Microcopy: [labels, error messages, empty-state copy]
|
|
84
|
+
- Validations: [inline feedback, format hints]
|
|
85
|
+
|
|
86
|
+
### Interaction flow
|
|
87
|
+
1. User does X → system shows Y
|
|
88
|
+
2. On error → display message Z in toast/alert with recovery action
|
|
89
|
+
|
|
90
|
+
### Responsiveness (mobile-first)
|
|
91
|
+
- Mobile (<768px): [layout]
|
|
92
|
+
- Tablet (768-992px): [adaptation]
|
|
93
|
+
- Desktop (>992px): [adaptation]
|
|
94
|
+
|
|
95
|
+
### Accessibility (WCAG 2.1 AA)
|
|
96
|
+
- Required aria-labels and semantic landmarks
|
|
97
|
+
- Keyboard navigation order + focus management
|
|
98
|
+
- Color contrast notes (token references, not hex)
|
|
99
|
+
- Screen-reader narration for dynamic regions (aria-live)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Inviolable rules
|
|
103
|
+
|
|
104
|
+
1. **Always specify ALL states** — never spec only the happy path.
|
|
105
|
+
2. **Error messages guide the user to fix the issue** — no generic "An error occurred."
|
|
106
|
+
3. **Empty states have a clear CTA** — never a blank screen.
|
|
107
|
+
4. **Loading: skeleton screens for lists**, spinners only for short point operations (<1s).
|
|
108
|
+
5. **Never absolute colors** — reference design tokens / theme variables only.
|
|
109
|
+
6. **Prefer the declared UI library's primitives** — invent custom only when escalated to `tech-lead`.
|
|
110
|
+
7. **WCAG 2.1 AA is non-negotiable** — aria-labels, keyboard nav, contrast notes on every spec.
|
|
111
|
+
8. **Mobile-first** — design the small viewport first, expand up.
|
|
112
|
+
|
|
113
|
+
## References
|
|
114
|
+
|
|
115
|
+
- ADR-010 (Impeccable skill — design tooling)
|
|
116
|
+
- ADR-026 (Generic agents + stack packs — stack-aware component output)
|
|
117
|
+
- `.claude/stacks/<lang>/<framework>-<major>.md` (pack with UI library + tokens convention)
|
|
118
|
+
- `.claude/skills/quality-standards/SKILL.md` (a11y thresholds: 0 serious / 0 critical via jest-axe + axe-playwright)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Read",
|
|
5
|
+
"Write",
|
|
6
|
+
"Edit",
|
|
7
|
+
"MultiEdit",
|
|
8
|
+
"Glob",
|
|
9
|
+
"Grep",
|
|
10
|
+
"Skill",
|
|
11
|
+
"Task",
|
|
12
|
+
"WebFetch",
|
|
13
|
+
"TodoRead",
|
|
14
|
+
"TodoWrite",
|
|
15
|
+
"NotebookRead",
|
|
16
|
+
"NotebookWrite",
|
|
17
|
+
"Bash"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"hooks": {
|
|
21
|
+
"PostToolUse": [
|
|
22
|
+
{
|
|
23
|
+
"matcher": "Edit|MultiEdit|Write",
|
|
24
|
+
"hooks": [
|
|
25
|
+
{
|
|
26
|
+
"type": "command",
|
|
27
|
+
"command": "json=$(cat); file_path=$(echo \"$json\" | jq -r '.file_path // empty'); if [[ \"$file_path\" =~ \\.(ts|tsx|html|scss|css)$ ]] && command -v npx &>/dev/null && [ -f node_modules/.bin/prettier ]; then npx prettier --write \"$file_path\" 2>/dev/null; fi"
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"Notification": [
|
|
33
|
+
{
|
|
34
|
+
"matcher": "*",
|
|
35
|
+
"hooks": [
|
|
36
|
+
{
|
|
37
|
+
"type": "command",
|
|
38
|
+
"command": "if command -v notify-send &>/dev/null; then notify-send 'Claude Code' 'Needs your attention'; elif command -v osascript &>/dev/null; then osascript -e 'display notification \"Needs your attention\" with title \"Claude Code\"'; fi"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# Skills — Cowork + Claude Code
|
|
2
|
+
|
|
3
|
+
> **Breaking change (2026-05-25)**: command layer deleted. Architecture is now 100% Skills + Agents. The `project-manager` skill is the catch-all entry point that routes prompts to the appropriate specialist agent. Specific skills (run-sprint, auto-test-guard, prd-ready-check, grill-me, scaffold, pair-debug, api-integration-test, brain-keeper, test-coverage-auditor, update-template, active-project, caveman) still take priority via keyword match. Standard sprint flow: `analyst` (plan) → `architect` (ADR) → `tech-lead` (approve) → `sprint-runner` (executes Sprint N delegating to `backend-developer` + `frontend-developer` + `database-engineer` in parallel) → `gate-keeper` (gate senior+) → `code-reviewer` → `tech-lead` (merge).
|
|
4
|
+
|
|
5
|
+
This directory contains the **Skills** that Cowork and Claude Code use to develop fullstack software Java 25+ / Spring Boot 4.0+ / Angular 21+ with this template's standard flow.
|
|
6
|
+
|
|
7
|
+
Unlike [agents](../agents/) (which are executors invoked via the Task tool), **Skills** are activated automatically based on trigger words in the conversation. Each skill has a `SKILL.md` with frontmatter containing `name` and `description` — the `description` is what the model uses to decide when to trigger the skill.
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
When the user describes a task, Cowork must **deliver it 100% production-ready for deploy**: backend compiles, frontend compiles, tests pass, API responds, screens open with no console errors, and the front consumes the back without failing.
|
|
12
|
+
|
|
13
|
+
## Available skills
|
|
14
|
+
|
|
15
|
+
| Skill | Purpose | Triggers with |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| [`scaffold`](scaffold/SKILL.md) | Unified scaffold entry point — reads `## Project Identity` from CLAUDE.md, runs the appropriate pipeline: fullstack monorepo (Spring Boot 4 + Angular 21 + Docker Compose), backend-only, or frontend-only | "scaffold the project", "scaffold backend", "scaffold frontend", "bootstrap fullstack", "monta o esqueleto", "scaffolda o projeto" |
|
|
18
|
+
| [`sprint-runner`](run-sprint/SKILL.md) | Runs a sprint from the plan — task by task, with checkpoints | "run sprint X", "execute the sprint" |
|
|
19
|
+
| [`api-integration-test`](api-integration-test/SKILL.md) | Boots backend + frontend, validates integration with curl + Chrome MCP | "test integration", "smoke", "validate flow" |
|
|
20
|
+
| [`gate-keeper`](auto-test-guard/SKILL.md) | At the end of each task: **generates** the automated tests for the new code (JUnit+Mockito+Testcontainers, Jest+Testing Library, Playwright) and **runs the full project regression suite**. Blocks the task if any test breaks. | "run the tests", "generate the tests", "test everything", "full suite", "ensure nothing broke", "auto-test" |
|
|
21
|
+
| [`test-coverage-auditor`](test-coverage-auditor/SKILL.md) | Audits test coverage, flags technical debt from manual verification, updates `tech-debt.md`. Mandatory gate inside `prd-ready-check`. | "audit the tests", "test debt?", "coverage ok?", "list what has no test" |
|
|
22
|
+
| [`prd-ready-check`](prd-ready-check/SKILL.md) | Final production gate — tests, builds, lint, E2E, security | "PRD-ready?", "can we deploy?", "DoD" |
|
|
23
|
+
| [`pair-debug`](pair-debug/SKILL.md) | Hypothesis-driven debug loop: state symptom → formulate hypotheses → probe one at a time → confirm cause → fix minimal → write test. Bans "try and see" approach. | "pair debug", "investigate this bug", "find the root cause", "why is this not working" |
|
|
24
|
+
| [`grill-me`](grill-me/SKILL.md) | Discovery interview — one question at a time, with recommendation, until requirements are clear. Persists conclusions to `docs/plans/PLAN_*.md` or ADR. | "grill me", "interview me about", "stress-test the plan", "discover requirements with me" |
|
|
25
|
+
| [`brain-keeper`](brain-keeper/SKILL.md) | Upon completing a PLAN_*: records history in the Obsidian vault (`docs/brain/`) — daily, feature, ADR, bug, tech-debt + updates MOC. Provisions `.obsidian/` with per-folder color snippet on first run. | End of PLAN_*; "record in the brain", "update brain", "log of the day", "close feature in vault" |
|
|
26
|
+
| [`update-template`](update-template/SKILL.md) | Adopts or synchronizes an EXISTING project with the latest version of the template (merge with backup) | "update the template", "bring the new skills", "sync with claude-code-agents", "adopt the template here" |
|
|
27
|
+
| [`active-project`](active-project/SKILL.md) | Path-driven, non-interactive adoption of a project to the template — `/active-project <path>`. Fast lane of `update-template` (no preview/checkpoint). Preferred for scripted batch adoptions. | "/active-project `<path>`", "ativar projeto em `<path>`", "adota o projeto `<path>`", "aplica o template em `<path>`" |
|
|
28
|
+
| [`caveman`](caveman/SKILL.md) | Telegraphic output style — drops articles, filler, pleasantries. 65-75% fewer tokens. Always active; adjustable via "caveman lite\|full\|ultra" or "stop caveman". | Passive (always active); "caveman lite", "caveman ultra", "stop caveman" |
|
|
29
|
+
| [`to-prd`](to-prd/SKILL.md) | Transforms a `DISCOVERY_*.md` into a Product Requirements Document. Requires `grill-me` to have run first. Produces `docs/prd/PRD_*.md` with six required sections: Overview, Goals, User Stories (prose), Functional Requirements, Non-functional Requirements, Out of scope. Idempotent. Opt-in only — never auto-triggered. | "to-prd", "gera PRD", "cria PRD", "generate PRD", "create PRD" |
|
|
30
|
+
| [`to-issues`](to-issues/SKILL.md) | Decomposes a `PRD_*.md` into trackable GitHub issues. Requires `to-prd` to have run first. Produces `docs/issues/ISSUES_*.md` with `[ISSUE-N]` blocks (Labels, Body, Acceptance criteria) ready for `gh issue create`. Idempotent. Opt-in only — never auto-triggered. | "to-issues", "quebra em issues", "gera issues", "break into issues", "generate issues" |
|
|
31
|
+
| [`project-manager`](project-manager/SKILL.md) | **Catch-all fallback router**. When no specific skill matches the prompt, picks ONE specialist agent from the routing table and dispatches via Task tool. Covers the 17 specialist agents that have no dedicated skill (`analyst`, `tech-lead`, `backend-developer`, `frontend-developer`, `code-reviewer`, `database-engineer`, `devops-engineer`, `mobile-developer`, `n8n-specialist`, `product-owner`, `qa-engineer`, `security-engineer`, `tech-lead`, `ux-designer`, `migrator`, `release-engineer`, `auditor`). | "create endpoint", "review my code", "dockerize", "audit security", "design DB", "create mobile app", "n8n workflow", "wireframe", "migrate spring boot 2", any task without a more specific skill |
|
|
32
|
+
| [`honcho-memory`](honcho-memory/SKILL.md) | Persistent cross-session memory via Honcho v3 self-hosted. Injects `[HONCHO MEMORY]` block into every prompt. Hybrid search: peer-scoped (explicit + inferred preferences) + session-scoped (project context). Graceful degradation when Honcho is unavailable. Supports `/honcho save`, `search`, `list`, `forget` (soft-delete via PUT), `status`, `setup`. | "lembra que", "remember that", "memoriza", "/honcho save", "/honcho search", "/honcho list", "/honcho forget", "/honcho status", "/honcho setup", "honcho memory", "memória honcho" |
|
|
33
|
+
|
|
34
|
+
## Where the code is generated
|
|
35
|
+
|
|
36
|
+
This directory (`C:\development\tools\claude-code-agents\`) is the **TEMPLATE** — it is not where Java/Angular projects live. The skills here are copied to each new project.
|
|
37
|
+
|
|
38
|
+
### Canonical projects directory
|
|
39
|
+
|
|
40
|
+
Every fullstack project generated by this template should live in:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
C:\development\source\projects\<project-name>\
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This is the default destination — do not use other folders without justification recorded in an ADR. `bootstrap-project.sh` and the `scaffold` skill assume this path.
|
|
47
|
+
|
|
48
|
+
### End-to-end flow, from zero to deploy
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
1. Create the project (interactive wrapper — recommended)
|
|
52
|
+
On Windows (double-click or prompt):
|
|
53
|
+
> C:\development\tools\claude-code-agents\scripts\new-project.bat
|
|
54
|
+
On Git Bash / WSL / Mac / Linux:
|
|
55
|
+
$ bash /c/development/tools/claude-code-agents/scripts/new-project.sh
|
|
56
|
+
|
|
57
|
+
The wrapper asks:
|
|
58
|
+
- Project name (kebab-case)
|
|
59
|
+
- Type: [1] Backend Java | [2] Frontend | [3] Fullstack
|
|
60
|
+
- If Frontend: [1] Angular 21 | [2] HTML + Vite Vanilla
|
|
61
|
+
|
|
62
|
+
Then creates it in C:\development\source\projects\<name>\ and
|
|
63
|
+
opens Claude Code directly in the folder.
|
|
64
|
+
|
|
65
|
+
(Non-interactive alternative:
|
|
66
|
+
bash .../scripts/bootstrap-project.sh my-app C:/development/source/projects \
|
|
67
|
+
--tipo=fullstack --frontend-stack=angular)
|
|
68
|
+
|
|
69
|
+
2. First instruction in Cowork/Claude Code (the right skill is fired by the type)
|
|
70
|
+
|
|
71
|
+
3. First instruction (empty project)
|
|
72
|
+
Any type → "scaffold the project" → triggers scaffold skill → dispatches to scaffold agent
|
|
73
|
+
|
|
74
|
+
The scaffold agent reads `## Project Identity` in the project's `CLAUDE.md` to decide
|
|
75
|
+
what to generate (backend | frontend | fullstack). Type is injected there by bootstrap-project.sh.
|
|
76
|
+
|
|
77
|
+
4. Subsequent conversations (features)
|
|
78
|
+
"implement product registration with name, price and stock"
|
|
79
|
+
→ triggers run-sprint
|
|
80
|
+
→ Stage 0: checks backend/pom.xml and frontend/angular.json (OK)
|
|
81
|
+
→ Stage 1 → analyst → docs/plans/PLAN_product-registration.md
|
|
82
|
+
│ ⏸️ CHECKPOINT
|
|
83
|
+
→ Stage 2 → (architecture) → ADR if any new decision
|
|
84
|
+
│ ⏸️ CHECKPOINT
|
|
85
|
+
→ Stage 3 → run-sprint → backend-developer + frontend-developer
|
|
86
|
+
│ (code goes to backend/src/main/java/... and frontend/src/app/...)
|
|
87
|
+
→ Stage 4 → api-integration-test (boots back+front, curl + Chrome MCP)
|
|
88
|
+
│ ⏸️ CHECKPOINT
|
|
89
|
+
→ Stage 5 → prd-ready-check (GO / NO-GO with mvn test, npm test, builds, E2E)
|
|
90
|
+
│ ⏸️ CHECKPOINT
|
|
91
|
+
→ Stage 6 → brain-keeper (records daily + feature + ADR + tech-debt + MOC in docs/brain/)
|
|
92
|
+
│ ⏸️ CHECKPOINT
|
|
93
|
+
→ Stage 7 → commit + PR
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Summary**: the entry point is `new-project.bat` (or `.sh`). It creates the structure in `C:\development\source\projects\<name>\` and opens Claude Code. From there on, the skills do all the work — the code is never generated in `claude-code-agents/`.
|
|
97
|
+
|
|
98
|
+
### Adoption/update flow (existing project)
|
|
99
|
+
|
|
100
|
+
If you already have a project and want to **bring it into the template's standard** (or update with new skills when the template evolves), use `update-project`. Two equivalent paths:
|
|
101
|
+
|
|
102
|
+
**(a) Outside the project — interactive wrapper**
|
|
103
|
+
|
|
104
|
+
```cmd
|
|
105
|
+
REM Windows
|
|
106
|
+
C:\development\tools\claude-code-agents\scripts\update-project.bat REM asks for the folder
|
|
107
|
+
C:\development\tools\claude-code-agents\scripts\update-project.bat C:\path\project REM passes directly
|
|
108
|
+
C:\development\tools\claude-code-agents\scripts\update-project.bat --dry-run REM simulates
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Git Bash / WSL / Mac / Linux
|
|
113
|
+
bash /c/development/tools/claude-code-agents/scripts/update-project.sh /path/to/project
|
|
114
|
+
bash /c/development/tools/claude-code-agents/scripts/update-project.sh --dry-run
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**(b) Inside the project — skill in Cowork**
|
|
118
|
+
|
|
119
|
+
Open the project in Cowork and ask:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
update the template
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The `update-template` skill shows a preview (what will be merged, what will be created) and asks for confirmation before writing anything.
|
|
126
|
+
|
|
127
|
+
**What the adoption/update does (idempotent, safe to run multiple times)**
|
|
128
|
+
|
|
129
|
+
1. **Detects the type** of the project by looking at `backend/pom.xml`, `frontend/angular.json`, `frontend/vite.config.*`.
|
|
130
|
+
2. **Merges `.claude/`** — backs up the current one in `.claude.backup-YYYYMMDD-HHMMSS/` and copies the template files on top, **preserving local custom skills/agents** that do not exist in the template.
|
|
131
|
+
3. **Injects the "Project type" block** into `CLAUDE.md` if missing. If it already exists, just checks consistency.
|
|
132
|
+
|
|
133
|
+
Anything overwritten is backed up. Local files that the template does not have are **never removed**.
|
|
134
|
+
|
|
135
|
+
## How Cowork triggers skills
|
|
136
|
+
|
|
137
|
+
Cowork reads the `description` field of the frontmatter. When the user's message matches the trigger words listed there, the skill is automatically triggered and its `SKILL.md` is loaded into the context.
|
|
138
|
+
|
|
139
|
+
There is no need to call explicitly — just describe the task. If you want to force a specific skill, use `/skill <name>` (Claude Code) or mention explicitly: "use the `analyst` skill".
|
|
140
|
+
|
|
141
|
+
## Canonical precedence — skill ↔ agent
|
|
142
|
+
|
|
143
|
+
Two-layer architecture. Commands layer was deleted on 2026-05-25 (replaced by the `project-manager` skill catch-all).
|
|
144
|
+
|
|
145
|
+
| Layer | Role | Trigger | Owns what |
|
|
146
|
+
|---|---|---|---|
|
|
147
|
+
| **Skill** (`.claude/skills/<name>/SKILL.md`) | **Entry point** | Auto-trigger via `description` (Cowork classifier) OR explicit `/skill <name>` | Orchestration logic, checkpoints, stage → agent mapping |
|
|
148
|
+
| **Agent** (`.claude/agents/<name>.md`) | **Executor** | Invoked by a skill via `Task(subagent_type="<name>", ...)` | System prompt, decision framework, `model:` declaration |
|
|
149
|
+
|
|
150
|
+
### Runtime hierarchy
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
USER MESSAGE
|
|
154
|
+
│
|
|
155
|
+
├─ keyword match → specific SKILL
|
|
156
|
+
│ │
|
|
157
|
+
│ ├─ Pattern 1 (Facade pair) → same-name AGENT (executor)
|
|
158
|
+
│ │ prd-ready-check, brain-keeper, api-integration-test,
|
|
159
|
+
│ │ test-coverage-auditor, update-template, scaffold
|
|
160
|
+
│ │
|
|
161
|
+
│ ├─ Pattern 2 (Orchestration) → one or more differently-named AGENTs
|
|
162
|
+
│ │ run-sprint → sprint-runner
|
|
163
|
+
│ │ auto-test-guard → gate-keeper
|
|
164
|
+
│ │ grill-me → analyst
|
|
165
|
+
│ │ to-prd, to-issues → analyst / product-owner
|
|
166
|
+
│ │
|
|
167
|
+
│ └─ Pattern 3 (Standalone) → no agent; executes inline
|
|
168
|
+
│ caveman, honcho-memory, pair-debug, project-manager, active-project
|
|
169
|
+
│
|
|
170
|
+
└─ no match → PROJECT-MANAGER SKILL (catch-all fallback)
|
|
171
|
+
↓ analyzes prompt, picks ONE specialist
|
|
172
|
+
↓ Task(subagent_type="<agent>")
|
|
173
|
+
AGENT (executor)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### When name overlaps
|
|
177
|
+
|
|
178
|
+
For names that exist in both skill + agent (`sprint-runner`, `gate-keeper`, `prd-ready-check`, `brain-keeper`, `scaffold`, `test-coverage-auditor`, `api-integration-test`, `update-template`), they describe the **same flow**. The skill is the interface contract; the agent is the execution contract. See Pattern 1 in `## Pattern catalog` below.
|
|
179
|
+
|
|
180
|
+
### When a name exists only in one layer
|
|
181
|
+
|
|
182
|
+
- **Skill only** (`caveman`, `pair-debug`, `grill-me`, `active-project`, `project-manager`, `honcho-memory`, `to-prd`, `to-issues`): execute inline or orchestrate via Bash/Read/Write/Task. No dedicated agent counterpart. See Pattern 3 in `## Pattern catalog` below.
|
|
183
|
+
- **Agent only** (`tech-lead`, `product-owner`, `architect`, `security-engineer`, `database-engineer`, `devops-engineer`, `code-reviewer`, `ux-designer`, `analyst`, `backend-developer`, `frontend-developer`, `qa-engineer`, `mobile-developer`, `n8n-specialist`, `migrator`, `release-engineer`, `auditor`): invoked via Task tool by skills — commonly by `project-manager` (for tasks without a dedicated skill) or by `sprint-runner` (for sprint tasks).
|
|
184
|
+
|
|
185
|
+
### Required mapping in router skills
|
|
186
|
+
|
|
187
|
+
Every skill that orchestrates multiple stages MUST declare a `stage → subagent_type` table using actual agent names (from `.claude/agents/`). This prevents the parent (Opus) from billing inline work that should run on Sonnet/Haiku.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Pattern catalog
|
|
192
|
+
|
|
193
|
+
Three patterns govern every skill/agent pair in the harness. New entries MUST be classified into one of these patterns before being merged.
|
|
194
|
+
|
|
195
|
+
### Pattern 1 — Facade pair
|
|
196
|
+
|
|
197
|
+
A skill and an agent share the **same kebab-case name**. The skill is the **interface contract**; the agent is the **execution contract**.
|
|
198
|
+
|
|
199
|
+
**Interface contract (skill MUST contain):**
|
|
200
|
+
- `## When to trigger` — keyword triggers, user-facing scenarios.
|
|
201
|
+
- `## Prerequisites` — required artifacts/context before invoking.
|
|
202
|
+
- `## Do NOT use for` — scope boundaries.
|
|
203
|
+
- `## Dispatch` — `Task(subagent_type: "<same-name-agent>", ...)` call.
|
|
204
|
+
- `## Handoff` — pointer to the agent for execution rules.
|
|
205
|
+
|
|
206
|
+
**Interface contract (skill MUST NOT contain):**
|
|
207
|
+
- Step-by-step execution checklist (belongs to the agent).
|
|
208
|
+
- Inline decision framework.
|
|
209
|
+
- Model selection rules.
|
|
210
|
+
|
|
211
|
+
**Execution contract (agent MUST contain):**
|
|
212
|
+
- Full step-by-step checklist / phases.
|
|
213
|
+
- Decision framework and golden rules.
|
|
214
|
+
- Tool list and model declaration.
|
|
215
|
+
|
|
216
|
+
**Execution contract (agent MUST NOT contain):**
|
|
217
|
+
- User-facing PT-language trigger phrases in the body (only in frontmatter `description`).
|
|
218
|
+
- Redundant "when to use" prose already in the skill.
|
|
219
|
+
|
|
220
|
+
**Current instances (post-Sprint 1):**
|
|
221
|
+
|
|
222
|
+
| Skill | Agent |
|
|
223
|
+
|---|---|
|
|
224
|
+
| `prd-ready-check` | `prd-ready-check` |
|
|
225
|
+
| `brain-keeper` | `brain-keeper` |
|
|
226
|
+
| `api-integration-test` | `api-integration-test` |
|
|
227
|
+
| `test-coverage-auditor` | `test-coverage-auditor` |
|
|
228
|
+
| `update-template` | `update-template` |
|
|
229
|
+
| `scaffold` | `scaffold` |
|
|
230
|
+
|
|
231
|
+
### Pattern 2 — Orchestration skill
|
|
232
|
+
|
|
233
|
+
A skill dispatches to **one or more agents with different names**. The skill owns the multi-stage orchestration; each agent owns its execution slice.
|
|
234
|
+
|
|
235
|
+
**Rules:**
|
|
236
|
+
- The skill's frontmatter `description` lists user-facing triggers.
|
|
237
|
+
- The skill body contains a `stage → subagent_type` mapping table.
|
|
238
|
+
- Each agent in the chain is independent — the skill passes explicit context on each `Task(...)` call.
|
|
239
|
+
|
|
240
|
+
**Current instances:**
|
|
241
|
+
|
|
242
|
+
| Skill | Agent(s) dispatched |
|
|
243
|
+
|---|---|
|
|
244
|
+
| `run-sprint` | `sprint-runner` |
|
|
245
|
+
| `auto-test-guard` | `gate-keeper` |
|
|
246
|
+
| `grill-me` | `analyst` |
|
|
247
|
+
| `to-prd` | `analyst`, `product-owner` |
|
|
248
|
+
| `to-issues` | `analyst`, `product-owner` |
|
|
249
|
+
|
|
250
|
+
> Note: `scaffold` is simultaneously Pattern 1 (skill + same-name agent) and could be considered orchestration when the scaffold agent itself delegates to `backend-developer` / `frontend-developer`. The classification is Pattern 1 — the skill-to-agent boundary is the primary contract.
|
|
251
|
+
|
|
252
|
+
### Pattern 3 — Standalone skill
|
|
253
|
+
|
|
254
|
+
A skill with **no companion agent**. It executes its logic inline (Bash, Read, Write, Edit, Task to a generic specialist) without a dedicated executor agent.
|
|
255
|
+
|
|
256
|
+
**Justification required** — a skill is standalone only when it falls into one of these categories:
|
|
257
|
+
|
|
258
|
+
| Category | Description | Examples |
|
|
259
|
+
|---|---|---|
|
|
260
|
+
| **Mode/style** | Changes the output style of the parent session, not a task | `caveman` |
|
|
261
|
+
| **Infrastructure** | Manages external service state (auth, memory, config) | `honcho-memory` |
|
|
262
|
+
| **Router** | Catch-all dispatcher — by definition has no fixed agent target | `project-manager` |
|
|
263
|
+
| **Inline transform** | Short-lived transformation that doesn't warrant a dedicated agent | `active-project` |
|
|
264
|
+
| **Interview / generation** | Multi-turn interview + file write, no persistent agent needed | `pair-debug`, `to-prd`, `to-issues`, `grill-me`* |
|
|
265
|
+
|
|
266
|
+
*`grill-me` is listed here for its inline interview phase; its output handoff to `analyst` makes it also Pattern 2. Primary classification: Pattern 2.
|
|
267
|
+
|
|
268
|
+
**Current instances (pure Pattern 3):**
|
|
269
|
+
|
|
270
|
+
| Skill | Justification |
|
|
271
|
+
|---|---|
|
|
272
|
+
| `caveman` | Mode — output style toggle |
|
|
273
|
+
| `honcho-memory` | Infrastructure — Honcho v3 session management |
|
|
274
|
+
| `pair-debug` | Inline transform — hypothesis loop, no persistent executor |
|
|
275
|
+
| `project-manager` | Router — catch-all; fixed agent target undefined by design |
|
|
276
|
+
| `active-project` | Inline transform — fast-lane adoption, no dedicated agent |
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Decision rules
|
|
281
|
+
|
|
282
|
+
Rules D1–D4 govern how new skills and agents are classified and when specialist agents are promoted to paired skills.
|
|
283
|
+
|
|
284
|
+
### D1 — Pattern 1 contract split (enforced at review)
|
|
285
|
+
|
|
286
|
+
When a skill+agent pair shares a name (Pattern 1), the split between skill (interface) and agent (execution) MUST be enforced. Violations are caught at `code-reviewer` / `tech-lead` review:
|
|
287
|
+
|
|
288
|
+
- If the skill body contains execution steps, checklists, or `./mvnw` / `npm run` commands → **REJECT**.
|
|
289
|
+
- If the agent body contains PT-language user-facing triggers (outside frontmatter `description`) → **REJECT**.
|
|
290
|
+
|
|
291
|
+
### D3 — Defer promotion (specialist agents stay agent-only)
|
|
292
|
+
|
|
293
|
+
Specialist agents (`release-engineer`, `migrator`, `code-reviewer`, `security-engineer`, etc.) remain **agent-only** — routed via `project-manager` catch-all. Promote a specialist to a paired skill only when **both** conditions are met:
|
|
294
|
+
|
|
295
|
+
1. Telemetry or repeated session history shows direct keyword invocation for this specialist that bypasses `project-manager`.
|
|
296
|
+
2. The specialist has gained a ceremony of **three or more distinct phases** that benefit from a named orchestration entry point.
|
|
297
|
+
|
|
298
|
+
The following agents are candidates to watch — eligible for promotion if the conditions above are met:
|
|
299
|
+
|
|
300
|
+
| Agent | Reason to watch |
|
|
301
|
+
|---|---|
|
|
302
|
+
| `release-engineer` | Multi-phase ceremony: version bump → CHANGELOG → tag → push |
|
|
303
|
+
| `migrator` | Multi-phase: audit → plan → migrate → validate |
|
|
304
|
+
| `code-reviewer` | Frequent direct invocation: "review my PR", "review this code" |
|
|
305
|
+
| `security-engineer` | Frequent direct invocation: "audit security", "OWASP scan" |
|
|
306
|
+
|
|
307
|
+
Promotion decision: `tech-lead` approves after reviewing telemetry.
|
|
308
|
+
|
|
309
|
+
### D4 — Standalone skills require justification
|
|
310
|
+
|
|
311
|
+
A new standalone skill (Pattern 3) MUST declare its justification category from the table in `## Pattern catalog — Pattern 3`. Accepted categories: **mode/style**, **infrastructure**, **router**, **inline transform**, **interview/generation**. A skill submitted without a justification category is rejected at `code-reviewer` review.
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## Claude Code (terminal) usage
|
|
316
|
+
|
|
317
|
+
Skills auto-trigger via `description` keywords. To force a specific skill, type `/skill <name>` (Claude Code) or mention by name ("use the `analyst` skill"). The `project-manager` skill catches anything that did not match a more specific skill.
|
|
318
|
+
|
|
319
|
+
## Conventions of each SKILL.md
|
|
320
|
+
|
|
321
|
+
- **Frontmatter** with `name` (kebab-case) and `description` (rich in trigger words).
|
|
322
|
+
- **Explicit checkpoints** (⏸️) for skills that orchestrate.
|
|
323
|
+
- **Inviolable rules** at the end.
|
|
324
|
+
- **American English** in every instruction.
|
|
325
|
+
|
|
326
|
+
## Adding a new skill
|
|
327
|
+
|
|
328
|
+
1. Create the folder: `.claude/skills/<name>/`.
|
|
329
|
+
2. Create `SKILL.md` with the minimal frontmatter (`name`, `description`).
|
|
330
|
+
3. Structure the content following the pattern of existing skills.
|
|
331
|
+
4. Update this README.
|
|
332
|
+
5. Test by triggering via Cowork.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: active-project
|
|
3
|
+
description: Use to ACTIVATE/ADOPT a project to the `claude-code-agents` template in ONE shot — accepts the project path as the FIRST argument and runs `scripts/adopt-project.sh` directly without preview/checkpoint. Triggers when the user types `/active-project <path>` or says "active project at <path>", "activate project <path>", "ativar projeto", "adota o projeto X", "aplica o template no projeto Y", "ativar template em <path>". Same end-result as `update-template`, but path-driven and non-interactive — preferred for scripted batch adoptions. Supports `--dry-run`, `--force-type=<backend|frontend|fullstack>`, `--template=<path>`. Do NOT use to develop features (use run-sprint), scaffold empty projects (use scaffold), or update the current project's template from inside it (use update-template). PT triggers: 'ativar projeto', 'adota o projeto', 'aplica o template', 'ativa o template em', 'ativar projeto em', 'sincronizar template no projeto'.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Active Project — Adopt a project to the template (path-driven, non-interactive)
|
|
7
|
+
|
|
8
|
+
Always reply in **Brazilian Portuguese**.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. When it triggers
|
|
13
|
+
|
|
14
|
+
Exact invocations:
|
|
15
|
+
- `/active-project /path/to/project`
|
|
16
|
+
- `/active-project /path/to/project --dry-run`
|
|
17
|
+
- `/active-project /path/to/project --force-type=fullstack`
|
|
18
|
+
- `/active-project /path/to/project --template=/alt/template`
|
|
19
|
+
|
|
20
|
+
Natural-language equivalents:
|
|
21
|
+
- "ativar projeto em `/path`"
|
|
22
|
+
- "adota o projeto em `/path` com template fullstack"
|
|
23
|
+
- "aplica o template no projeto X em modo dry-run"
|
|
24
|
+
|
|
25
|
+
If the user asks **without a path**, ask for it before running anything.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. What it does
|
|
30
|
+
|
|
31
|
+
Single-shot wrapper around `scripts/adopt-project.sh`:
|
|
32
|
+
|
|
33
|
+
1. Detects project type (`backend | frontend | fullstack` + stack `angular | vite-vanilla`) from `backend/pom.xml`, `frontend/angular.json`, `frontend/vite.config.*`.
|
|
34
|
+
2. Backs up the existing `.claude/` to `.claude.backup-YYYYMMDD-HHMMSS/`.
|
|
35
|
+
3. Copies the template `.claude/` into the project, preserving local files outside the template.
|
|
36
|
+
4. Copies the template `CLAUDE.md` and appends the **"Identidade deste projeto"** block (project name, type, stack, adoption date).
|
|
37
|
+
5. Copies `.claude-version.json` and flags as outdated when versions diverge.
|
|
38
|
+
6. Reports backup paths, detected type, and any `[WARN]`/`[ERROR]` from the script.
|
|
39
|
+
|
|
40
|
+
This is the **fast path** of `update-template`: no preview, no checkpoint, no confirmation.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 3. Difference from `update-template`
|
|
45
|
+
|
|
46
|
+
| | `active-project` (this) | `update-template` |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| Path | First positional ARG | Current working directory |
|
|
49
|
+
| Preview/checkpoint | NO (direct execution) | YES (interactive) |
|
|
50
|
+
| Best for | Scripts, batch adoptions | Manual flow inside Claude Code with confirmation |
|
|
51
|
+
| Idempotent | YES (same as adopt-project.sh) | YES |
|
|
52
|
+
|
|
53
|
+
Both ultimately call `scripts/adopt-project.sh` — they share the engine.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 4. Procedure
|
|
58
|
+
|
|
59
|
+
1. **Parse the user message** to extract:
|
|
60
|
+
- PROJECT_PATH (first non-flag argument; absolute path expected)
|
|
61
|
+
- FLAGS (`--dry-run`, `--force-type=<tipo>`, `--template=<path>`)
|
|
62
|
+
2. **Validate** that PROJECT_PATH exists:
|
|
63
|
+
```bash
|
|
64
|
+
[ -d "<PROJECT_PATH>" ] || echo "[ERROR] Pasta nao existe: <PROJECT_PATH>"
|
|
65
|
+
```
|
|
66
|
+
If it does not exist, STOP and tell the user.
|
|
67
|
+
3. **Locate the template** (default: `C:\development\tools\claude-code-agents` on Windows, `~/workspace/tools/claude-code-agents` on Linux/Mac). Override with `--template` if provided.
|
|
68
|
+
4. **Run** via the `terminal` tool:
|
|
69
|
+
```bash
|
|
70
|
+
bash <TEMPLATE>/scripts/adopt-project.sh "<PROJECT_PATH>" [FLAGS]
|
|
71
|
+
```
|
|
72
|
+
5. **Capture full stdout/stderr** and surface it to the user in **PT-BR**, including:
|
|
73
|
+
- Detected (or forced) type
|
|
74
|
+
- Backup paths created
|
|
75
|
+
- `[OK]/[WARN]/[ERROR]` messages from the script
|
|
76
|
+
- The final "Adoption/update finished" block
|
|
77
|
+
- Whether the project was flagged as outdated (template/project version mismatch)
|
|
78
|
+
6. If the script reports `[WARN] Could not detect project type`, suggest re-running with `--force-type=<backend|frontend|fullstack>`.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 5. Quick Reference
|
|
83
|
+
|
|
84
|
+
| Case | Command |
|
|
85
|
+
|---|---|
|
|
86
|
+
| Adopt a fullstack project | `bash adopt-project.sh /path/to/project` |
|
|
87
|
+
| Force the type (no code yet) | `bash adopt-project.sh /path --force-type=fullstack` |
|
|
88
|
+
| Simulate without applying | `bash adopt-project.sh /path --dry-run` |
|
|
89
|
+
| Alternative template | `bash adopt-project.sh /path --template=/other/template` |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 6. Pitfalls
|
|
94
|
+
|
|
95
|
+
- **Path does not exist** → script aborts with `[ERROR] Folder does not exist`. Validate before invoking.
|
|
96
|
+
- **No `backend/` or `frontend/`** → script fails with `[WARN] Could not detect project type`. Use `--force-type=<tipo>` for projects without code yet.
|
|
97
|
+
- **Path with spaces** → always wrap in quotes when building the command.
|
|
98
|
+
- **Already adopted** → script silently creates a backup (`.claude.backup-*`). Mention this to the user.
|
|
99
|
+
- **Output verbosity** → if the user requests "mostre tudo" / "literal output", echo the captured stdout verbatim (do NOT summarize).
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 7. Verification
|
|
104
|
+
|
|
105
|
+
After applying (no `--dry-run`):
|
|
106
|
+
|
|
107
|
+
1. `<PROJECT_PATH>/.claude/agents`, `<PROJECT_PATH>/.claude/commands`, `<PROJECT_PATH>/.claude/skills` exist.
|
|
108
|
+
2. `<PROJECT_PATH>/CLAUDE.md` contains the block `## Identidade deste projeto`.
|
|
109
|
+
3. `<PROJECT_PATH>/.claude-version.json` matches the template's version (otherwise report as outdated).
|
|
110
|
+
4. The script printed `Adoption/update finished: <project-name>`.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 8. Inviolable rules
|
|
115
|
+
|
|
116
|
+
1. NEVER infer or invent a `PROJECT_PATH` from context — if the user did not provide one, ASK.
|
|
117
|
+
2. NEVER execute without `--dry-run` if the user explicitly asked for a simulation.
|
|
118
|
+
3. ALWAYS surface `[WARN]`/`[ERROR]` lines verbatim — do not omit them in the summary.
|
|
119
|
+
4. ALWAYS report the backup paths so the user can recover.
|
|
120
|
+
5. If invoked non-interactively (e.g. from a script), prefer non-blocking mode (no interactive prompts).
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 9. References
|
|
125
|
+
|
|
126
|
+
- Engine script: `scripts/adopt-project.sh`
|
|
127
|
+
- Interactive sibling: [`update-template`](../update-template/SKILL.md)
|
|
128
|
+
- Bootstrap (different purpose — creates new projects): [`scaffold`](../scaffold/SKILL.md)
|
|
129
|
+
- Canonical project directory: `C:\development\source\projects\<name>\`
|