Spec create
Skill ainova-systems/intelligence-dev-packs/packs/spec/skills/spec-create
Intelligence pack for software engineering based on Ainova Systems best practices
npx -y skills add ainova-systems/intelligence-dev-packs --skill spec-createAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Plan a change as a reviewable spec: grill the owner, then write requirements, plan, tasks - the review gate before execution
SKILL.md
5.7 KB, as published. Nobody here has run it
Create a Spec
Turn a task into a spec a cold-context session can execute without re-discovering conventions. Ambiguous scope triggers a grill - a relentless, checkpointed interview. The output is the owner's gate 1 review artifact; execution is owned by spec-execute.
This skill both creates a new spec and updates an existing one (re-scope when requirements change): in update-mode, re-read the current spec, apply the delta, keep a one-line history note, and reset status: proposed for re-approval.
Resolve the docs structure (learn, then profile, then default)
- Learn from the project: locate the existing spec/plan area (
docs/specs/,Documentation/Todo/, or equivalent) and read the most recent shipped spec end-to-end - it is the structural template. - Profile pins it when ambiguous:
specs_dir,features_dir,spec_grouping(flat|quarterly) indev-project-profile.md. - Greenfield default:
docs/specs/NNN-<slug>/withrequirements.md+plan.md+tasks.md(the ai-first-docs tree);quarterlygrouping nests asdocs/specs/<yyyy>-Q<n>/NNN-<slug>/.
If the project has no docs substrate yet (no model.md / glossary.md / features/ / specs/), run spec-init first to scaffold it - this skill writes one change spec into an existing structure, it does not bootstrap the whole tree.
Steps
- Deep learning first. Read the feature doc for the touched area (
features_dir), the project rules, the decision records, and the closest shipped sibling spec end-to-end. Note rules the request might contradict - rules win; flag conflicts now. - Grill the owner (when scope is ambiguous). Interview relentlessly until shared understanding - one question at a time, each with a recommended answer inferred from the code and docs so the owner can confirm, correct, or redirect. Walk the decision tree dependencies-first. Grill rules:
- A question the codebase or docs can answer is answered there, never asked.
- Sharpen fuzzy terms against the project's glossary/domain model ("you said account - the Customer or the User?"); surface code-vs-statement contradictions immediately.
- Stress-test domain relationships with concrete edge-case scenarios that force precise boundaries.
- Checkpoint after every answer into the spec draft files - the spec, not the conversation, is the source of truth; never hold answers only in memory.
- Unanswerable item - flag it with its owner in the spec's open questions and move on; don't stall.
- Clear, small scope - skip the grill and say so.
- Write
requirements.md. Acceptance criteria in EARS form (WHEN <event> THE SYSTEM SHALL <response>), narrowed to this change. Durable behavior stays in the feature doc; this file holds only the delta. - Write
plan.md- two non-negotiable preambles, then phases:- MUST READ FIRST - lessons learned from the closest shipped sibling build: one line each, a concrete mistake plus the sibling path that fixes it. Source from the predecessor PR / git log. Keep it narrow; a long generic list is ignored.
- Sibling-checking checklist - boxes the implementer ticks before writing any file: sibling identified by path, sibling re-read end-to-end, relevant rules re-read, matching skill identified, cross-cutting registrations confirmed.
- Phases: each phase lists the sibling path(s), the skill(s) to invoke, the rule file(s) to re-read, impact notes (dependents found by grep/types, breaking surface, expand-contract sequencing when a contract changes), and a testable acceptance criterion - never "build X".
- Write
tasks.md. Checkbox list (- [ ]) the executor ticks; each task = one testable slice producing code plus its test. - Cross-link. Plan phases point to feature-doc business rules; requirements point to the feature-doc section. Open business questions stay in the feature doc; the spec tracks only this change's todos. Decisions that crystallised during the grill and pass the ADR gate go to
spec-decision. - Apply necessary docs updates automatically. If the spec needs a docs-substrate artifact that is missing or stale to be coherent (a feature-doc stub for a new feature, a glossary term, a model touch), create or update it now via
spec-document(drafted, marked inferred) - never leave the substrate inconsistent for a human to fix. - Set status, quality gate, then hand to the owner. Write
status: proposedin the spec's front page (requirements.mdfrontmatter, or the project's spec-index convention). Re-read against the project's documentation rules: no class names or code in requirements, every phase cites a sibling, preambles present, criteria testable. Present the spec paths plus a 5-line summary. STOP - execution starts only after the owner approves viaspec-approve.
Verify
- The spec folder contains all three files; every plan phase cites at least one concrete sibling path; a cold executor could start with zero questions; every grill answer is persisted in the spec, not only in conversation.
Scope / hand-off
- Code, branches, PRs - out of scope:
spec-executeowns execution after approval. - Decisions made while planning -
spec-decision.
CRITICAL
- A spec is required only past the threshold (multi-module, contract change, migration risk, new feature). For a small clear task, say so and offer direct execution.
- Never invent structure: the closest shipped sibling spec is the template. No sibling and no profile - use the default and say so.
- Never start implementation in this skill, even the "obvious" parts.