From avila-tek-skill-pack
Creates specs before coding. Use when starting a new project, feature, or significant change and no specification exists yet. Use when requirements are unclear, ambiguous, or only exist as a vague idea.
npx claudepluginhub avila-tek/avila-tek-skill-packThis skill uses the workspace's default tool permissions.
Identify the active stack from the session-start hook output. State it explicitly: "Active stack: {name}".
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Identify the active stack from the session-start hook output. State it explicitly: "Active stack: {name}". If not injected, use the detection signals in CLAUDE.md → Stack System. Apply this stack's STACK.md Key Patterns and Verification Checklist before completing any output.
Spec sections covering API design and tech stack must reflect the detected stack's patterns and architecture boundaries.
docs/epics/E-*/stories/E-*_S-*/*.md[path]. Running Story-Driven Mode."Write a structured specification before writing any code. The spec is the shared source of truth between you and the human engineer — it defines what we're building, why, and how we'll know it's done. Code without a spec is guessing.
Avila Tek projects: If a story file exists at
docs/epics/E-XXX_slug/stories/E-XXX_S-YYY_slug/E-XXX_S-YYY_slug.md, use Story-Driven Mode (see end of this document). The story produced byplanning-5-story-generatoris your primary input — it replaces the need for clarifying questions on scope, ACs, and technical boundaries.
When NOT to use: Single-line fixes, typo corrections, or changes where requirements are unambiguous and self-contained.
Spec-driven development has four phases. Do not advance to the next phase until the current one is validated.
SPECIFY ──→ PLAN ──→ TASKS ──→ IMPLEMENT
│ │ │ │
▼ ▼ ▼ ▼
Human Human Human Human
reviews reviews reviews reviews
Start with a high-level vision. Ask the human clarifying questions until requirements are concrete.
Surface assumptions immediately. Before writing any spec content, list what you're assuming:
ASSUMPTIONS I'M MAKING:
1. This is a web application (not native mobile)
2. Authentication uses session-based cookies (not JWT)
3. The database is PostgreSQL (based on existing Prisma schema)
4. We're targeting modern browsers only (no IE11)
→ Correct me now or I'll proceed with these.
Don't silently fill in ambiguous requirements. The spec's entire purpose is to surface misunderstandings before code gets written — assumptions are the most dangerous form of misunderstanding.
Write a spec document covering these six core areas:
Objective — What are we building and why? Who is the user? What does success look like?
Commands — Full executable commands with flags, not just tool names.
Build: npm run build
Test: npm test -- --coverage
Lint: npm run lint --fix
Dev: npm run dev
Project Structure — Where source code lives, where tests go, where docs belong.
src/ → Application source code
src/components → React components
src/lib → Shared utilities
tests/ → Unit and integration tests
e2e/ → End-to-end tests
docs/ → Documentation
Code Style — One real code snippet showing your style beats three paragraphs describing it. Include naming conventions, formatting rules, and examples of good output.
Testing Strategy — What framework, where tests live, coverage expectations, which test levels for which concerns.
Boundaries — Three-tier system:
Spec template:
# Spec: [Project/Feature Name]
## Objective
[What we're building and why. User stories or acceptance criteria.]
## Tech Stack
[Framework, language, key dependencies with versions]
## Commands
[Build, test, lint, dev — full commands]
## Project Structure
[Directory layout with descriptions]
## Code Style
[Example snippet + key conventions]
## Testing Strategy
[Framework, test locations, coverage requirements, test levels]
## Boundaries
- Always: [...]
- Ask first: [...]
- Never: [...]
## Success Criteria
[How we'll know this is done — specific, testable conditions]
## Open Questions
[Anything unresolved that needs human input]
Reframe instructions as success criteria. When receiving vague requirements, translate them into concrete conditions:
REQUIREMENT: "Make the dashboard faster"
REFRAMED SUCCESS CRITERIA:
- Dashboard LCP < 2.5s on 4G connection
- Initial data load completes in < 500ms
- No layout shift during load (CLS < 0.1)
→ Are these the right targets?
This lets you loop, retry, and problem-solve toward a clear goal rather than guessing what "faster" means.
With the validated spec, generate a technical implementation plan:
The plan should be reviewable: the human should be able to read it and say "yes, that's the right approach" or "no, change X."
Break the plan into discrete, implementable tasks:
Task template:
- [ ] Task: [Description]
- Acceptance: [What must be true when done]
- Verify: [How to confirm — test command, build, manual check]
- Files: [Which files will be touched]
Execute tasks one at a time following incremental-implementation and test-driven-development skills. Use context-engineering to load the right spec sections and source files at each step rather than flooding the agent with the entire spec.
The spec is a living document, not a one-time artifact:
Before proceeding to implementation, confirm:
When this skill completes, suggest to the user:
"Spec ready. When you're ready, run
/planto break this into tasks (dev-planning-and-task-breakdown)."
Do not invoke /plan automatically.
Use this mode when the tech lead has already run planning-5-story-generator and the story file exists at:
docs/epics/E-XXX_slug/stories/E-XXX_S-YYY_slug/E-XXX_S-YYY_slug.md
The story is your source of truth. Do not ask clarifying questions that the story already answers.
| Story section | Maps to spec section |
|---|---|
| Section 1 — User Story ("As a / I want / So that") | Objective |
| Section 2 — Acceptance Criteria | Success Criteria |
| Section 3 — Ranked Tasks (Must/Important/Optional) | Base for Tasks |
| Section 4 — Technical Scope (API, DB, auth, config) | Tech Stack + Boundaries |
| Section 5 — Business Rules | Boundaries constraints |
| Section 6 — Data Model Impact | Project Structure (if schema changes) |
docs/epics/E-XXX_slug/stories/E-XXX_S-YYY_slug/E-XXX_S-YYY_slug.mddocs/epics/E-XXX_slug/epic.md — extract scope, background, constraints, and non-goalsdocs/epics/E-XXX_slug/tdd.md — extract architecture decisions, tech stack, and integration constraints. If absent, skip silently.docs/domain_model.md — use it to resolve entity names, relationships, and data boundaries. If absent, skip silently.docs/project_context.md if any of the following are true: the story touches cross-cutting concerns, the tech stack is not explicit in the story, or the epic scope references project-level constraints. If absent or not needed, skip silently.spec.md using the standard spec template, with the loaded documents as source of truthdocs/epics/E-XXX_slug/stories/E-XXX_S-YYY_slug/spec.mdThe resulting spec.md is the source of truth for the development session. Subsequent /plan and /build commands use the spec, not the planning documents directly.