From automaker-tools
This skill should be used when the user asks to "optimize the spec", "improve app_spec.txt", "update spec.md", "optimize project specification", "improve feature generation from spec", or wants to restructure their Automaker project specification for better AI comprehension. Also use when discussing spec.md structure, app_spec.txt format, or how to write specs that generate better features.
How this skill is triggered — by the user, by Claude, or both
Slash command
/automaker-tools:spec-optimizerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Optimize Automaker project specifications to produce higher-quality AI-generated features. Automaker uses two spec-related files that drive its autonomous development workflow. Understanding their roles, structure, and interaction is essential for maximizing feature generation quality.
Optimize Automaker project specifications to produce higher-quality AI-generated features. Automaker uses two spec-related files that drive its autonomous development workflow. Understanding their roles, structure, and interaction is essential for maximizing feature generation quality.
.automaker/app_spec.txt<project_specification> schemaPOST /api/spec-regeneration/generate-features.POST /api/spec-regeneration/generate (AI-powered) or POST /api/spec-regeneration/create (from a project overview).verified or completed status, syncFeatureToAppSpec() in FeatureLoader appends them to the <implemented_features> section automatically..automaker/spec.mdapp_spec.txt.Both files live in the .automaker/ directory at the project root. The app_spec.txt XML file is the one Automaker's backend actively parses and uses for feature generation.
Automaker's structured output uses the SpecOutput interface. Refer to references/spec-schema.md for the complete schema definition with field-by-field guidance.
Required fields: project_name, overview, technology_stack, core_capabilities, implemented_features
Optional fields: additional_requirements, development_guidelines, implementation_roadmap
The spec generation model (default: Opus) produces a SpecOutput JSON object via structured output, which Automaker then converts to XML via specToXml() and saves as app_spec.txt.
package.json or the repository.implemented_features for completed work and core_capabilities for planned work.name and description. Optionally include file_locations to anchor the feature to specific code paths.syncFeatureToAppSpec(), but manual curation improves accuracy.apps/server/src/routes/").phase name, status (completed, in_progress, or pending), and description.core_capabilities by topic alignment so agents understand what work belongs to each phase.POST /api/spec-regeneration/sync) automatically updates phase statuses based on completed features.Refer to references/optimization-techniques.md for detailed before/after examples and anti-pattern catalog.
apps/ui/src/components/views/dashboard-view.tsx using the existing Zustand store pattern" gives it a clear target.POST /api/spec-regeneration/sync periodically to synchronize completed features, update the tech stack via codebase analysis, and advance roadmap phases.implemented_features entries for accuracy after each batch of feature completions.core_capabilities to remove items that have been fully implemented and moved to implemented_features.POST /api/spec-regeneration/generate with analyzeProject: true when the codebase has diverged significantly from the spec.<project_specification> root element, proper tag nesting, and XML-escaped special characters.<feature> in <implemented_features> has both <name> and <description> child elements.<feature> entries (Automaker checks for duplicates by name, case-insensitive, but manual review catches semantic duplicates with different names).Spec creation: POST /api/spec-regeneration/generate sends the project overview to the spec generation model (configurable via phaseModels.specGenerationModel, defaults to Opus). When analyzeProject is true, the model uses Read, Glob, and Grep tools to inspect the actual codebase.
Structured output: The model returns a SpecOutput JSON object via Claude's structured output. Automaker converts it to XML via specToXml() and writes it to .automaker/app_spec.txt.
Feature generation: POST /api/spec-regeneration/generate-features reads the saved app_spec.txt, loads existing features to prevent duplicates, and sends both to the feature generation model (configurable via phaseModels.featureGenerationModel, defaults to Sonnet).
Feature output: The model returns a JSON array of features, each with id, title, description, and optional category, priority, complexity, and dependencies. Automaker creates feature cards from these on the Kanban board.
Spec sync: As features reach verified/completed, syncFeatureToAppSpec() appends them to <implemented_features>. The sync endpoint performs a full reconciliation: merging completed features, analyzing the tech stack, and updating roadmap phases.
implemented_features and "what to build" in core_capabilities. Mixing them causes duplicate feature generation.SpecOutput schema. Invalid or missing fields cause silent failures in feature generation.npx claudepluginhub jbactad/claude-pluginsGenerates structured feature specifications with demoable units, functional requirements, and proof artifacts. Use when defining what to build before writing code.
Creates or updates SPEC.md documents from requirements, notes, or interview output, structuring into sections for goals, design, edge cases, security, testing, and success criteria. Use for feature specs.
Generates or refines a project spec from a free-form request, PRD, or reviewer findings. Produces an immutable contract for downstream agents.