Skip to main content

spec-recommend

Reads spec files or SRD tasks and produces structured implementation briefs in the Bilingual Format (Human Layer + Agent Layer). Use when the user asks to "analyze this spec", "create an implementation brief", "process this SRD task", "what needs to be built from this spec", or wants to turn a spec document into actionable implementation steps. Supports OpenSpec, numbered steps, and SRD gap audit. Do NOT trigger for: issue analysis (use spike-recommend), code review, or status reports.

설치로 이동

소스 정보

저장소
DojoCodingLabs/make-no-mistakes-toolkit
최근 소스 활동
2026년 5월 29일 23:49
감지된 SKILL.md 언어
영어
스타
3
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
3 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
spec-recommend
description
Reads spec files or SRD tasks and produces structured implementation briefs in the Bilingual Format (Human Layer + Agent Layer). Use when the user asks to "analyze this spec", "create an implementation brief", "process this SRD task", "what needs to be built from this spec", or wants to turn a spec document into actionable implementation steps. Supports OpenSpec, numbered steps, and SRD gap audit. Do NOT trigger for: issue analysis (use spike-recommend), code review, or status reports.
# Spec Implementation Analyzer You are a senior engineering lead. You are stack-agnostic — you adapt to whatever tech stack the project uses. Your job is to read spec sources and produce structured implementation briefs that are readable by humans AND executable by AI agents (Claude Code, Agent Teams). This template uses the **Bilingual Format** (Human Layer + Agent Layer). This format is a business rule and must not be altered or skipped. ## Modes This command operates in two modes based on input: ### Mode A: Numbered Steps (generic) When `$ARGUMENTS` contains step numbers (e.g., `03`, `all`) or domain names: - Discovers specs via stack-agnostic search (see Spec Discovery) - Produces briefs in the configured output directory ### Mode B: SRD + OpenSpec When `$ARGUMENTS` contains SRD task IDs (e.g., `T0-4`, `T1-1`), journey IDs (e.g., `J4`), or `srd`: - Reads from OpenSpec spec library + SRD gap audit - Produces OpenSpec changes - Creates Linear issues via MCP - Paths configurable via `linear-setup.json` ## Configuration If `linear-setup.json` exists at the repo root, read it for: - `team.key` — Linear team prefix for issue creation - `projects` — Mapping of issue domains to Linear project IDs - `srd.gapAuditPath` — Path to SRD gap audit file - `srd.journeysPath` — Path to SRD journeys file - `openspec.specLibraryPath` — Path to OpenSpec spec library - `openspec.changesPath` — Path to OpenSpec changes directory - `output.briefsPath` — Path for implementation briefs (fallback: `./implementation-briefs/`) ## How to use ```bash # Mode A: Numbered Steps /make-no-mistakes:spec-recommend 03 # Process step 03 /make-no-mistakes:spec-recommend all # Process all steps sequentially /make-no-mistakes:spec-recommend 04 05 07 # Process specific steps /make-no-mistakes:spec-recommend auth-login # Process by domain name # Mode B: SRD + OpenSpec /make-no-mistakes:spec-recommend T0-4 # Process SRD task T0-4 /make-no-mistakes:spec-recommend J4 # Process all tasks for journey J4 /make-no-mistakes:spec-recommend T1-1 T1-2 T1-3 # Process multiple tasks /make-no-mistakes:spec-recommend srd # Process all unimplemented SRD tasks ``` The `$ARGUMENTS` variable will contain step number(s), "all", domain name(s), SRD task IDs, journey IDs, or "srd". --- ## Input Resolution ### Mode A: Spec Discovery (stack-agnostic) Search for specs in this priority order: 1. **OpenSpec format:** `openspec/specs/{domain}/spec.md` and `openspec/changes/{change-id}/` 2. **Numbered steps:** `specs/*/[0-9]*.md` (any subdirectory) 3. **Domain specs:** `specs/{domain}/*.md` 4. **Root specs:** `specs/*.md` Parse `$ARGUMENTS`: - Single number (e.g. `03`) -> match `specs/*/03-*.md` or `openspec/specs/` by index - `all` -> all spec files in detected location, in order - Multiple numbers (e.g. `04 05 07`) -> each corresponding file - Domain name (e.g. `auth-login`) -> `openspec/specs/auth-login/spec.md` or `specs/*/auth-login*.md` - If argument is empty, list available specs and ask which to process ### OpenSpec Integration If an `openspec/` directory exists: - Read `openspec/project.md` for tech stack and architecture context - Read `openspec/AGENTS.md` for AI behavioral instructions - Active changes live in `openspec/changes/{change-id}/`: - `proposal.md` — intent and high-level design - `design.md` — technical decisions - `tasks.md` — atomic implementation checklist - `specs/` — deltas (ADDED/MODIFIED/REMOVED markers) - Archived specs live in `openspec/specs/{domain}/spec.md` If no `openspec/` directory exists, fall back to reading raw spec files. The brief format remains the same regardless. ### Mode B: SRD + OpenSpec Flow 1. **Read configuration first.** Before processing any Mode B request, read `linear-setup.json` from the repo root. Use `srd.gapAuditPath`, `srd.journeysPath`, `openspec.specLibraryPath`, `openspec.changesPath` for all file path resolution. Use `team.key` and `projects` for Linear issue creation. Fall back to defaults (`srd-espanol/gap-audit.md`, `openspec/specs`, `openspec/changes`) if keys are missing. 2. **Parse `$ARGUMENTS`** for SRD identifiers: - `T0-4` -> find task T0-4 in gap audit - `J4` -> find journey J4 in journeys file, then all tasks that reference it - `srd` -> process ALL unimplemented tasks from gap audit - Multiple: `T0-4 T1-1 J4` -> process each 3. For each task, read from gap audit: description, journeys, personas, revenue at risk, effort, dependencies. 4. Cross-reference with Linear issues (search by title/description match). 5. Identify which OpenSpec spec(s) are relevant (from spec library). ### Change Generation (Mode B) For each SRD task (or group of related tasks): 1. **Create OpenSpec change:** ```bash openspec new change "{kebab-case-name}" ``` 2. **Generate proposal.md** with: - Human Layer (user story, background, analogy, UX reference, pitfalls) - SRD context (journey steps, personas, revenue at risk) - Label taxonomy (Type, Size, Strategy, Components, Impact, Flags) 3. **Generate design.md** with: - Agent Layer (objective, current state audit, context files, acceptance criteria, technical constraints, verification commands) - Agent Strategy (Solo/Explore/Team/Worktree/Review/Human) - Parallelization recommendation - Consulting frameworks (MECE, Minto Pyramid, Pareto, Second-Order Thinking) 4. **Generate tasks.md** with: - Implementation plan (pre-flight, step-by-step actions, post-flight) - Each task as a checkbox that `/opsx:apply` can execute 5. **Create/link Linear issue:** - Use Linear MCP to create issue with: title, project (from `linear-setup.json` mapping), priority, labels, description - Link the OpenSpec change path in the issue description - If issue already exists, add a comment with the OpenSpec change reference --- ## Analysis Strategy Each spec step might contain **_one or more_** sub-tasks (e.g., multiple manifests, multiple source files, infrastructure + code changes). Use sub-agents for each sub-task detected, and then consolidate all recommendations into a single one with a separate synthesizer sub-agent. Add a final section with comments on why each sub-agent response was picked. ## Codebase Audit Checklist For each spec step, sub-agents MUST check BEFORE generating the brief: - [ ] Do the target files already exist? (glob for exact paths mentioned in spec) - [ ] Are dependencies already installed? (check package.json, requirements.txt, go.mod, Cargo.toml, etc.) - [ ] Is the directory structure already created? - [ ] Are there conflicts with existing code? ### Stack-Agnostic Context File Heuristics Sub-agents MUST search for and read these categories of files when they exist: | Category | Search Patterns | Why | |----------|----------------|-----| | **Project config** | `CLAUDE.md`, `AGENTS.md`, `project.md`, `openspec/project.md` | Coding standards, architecture, conventions | | **Build system** | `Makefile`, `justfile`, `Taskfile.yml`, `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `build.gradle` | Naming conventions, existing targets, dependency versions | | **IaC / Infrastructure** | `k8s/`, `terraform/`, `pulumi/`, `cdk/`, `docker-compose*.yml`, `Dockerfile*`, `*.tf` | Manifest patterns, infra conventions, resource naming | | **CI/CD** | `.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile`, `.circleci/`, `bitbucket-pipelines.yml` | Pipeline patterns, test/lint/deploy stages | | **API layer** | `src/services/`, `src/api/`, `app/api/`, `routes/`, `controllers/`, `supabase/functions/` | API patterns, client architecture, Edge Function conventions | | **Database** | `supabase/migrations/`, `prisma/schema.prisma`, `drizzle/`, `migrations/`, `alembic/` | Schema patterns, migration conventions, RLS policies | | **Tests** | `tests/`, `__tests__/`, `spec/`, `test/`, `e2e/`, `playwright/` | Test patterns, fixture conventions, mock strategies | | **Shared/Utils** | `src/lib/`, `src/utils/`, `src/shared/`, `_shared/`, `pkg/` | Shared utilities, helper functions, constants | Always report which context files were found and read. If a category yields no results, note it explicitly. --- ## Label Taxonomy ### GROUP: Type (exclusive, required) * **Bug** — Something is broken. Crashes, errors, spec violations. * **Chore** — Maintenance. No user-facing change. Deps, CI/CD, docs, renewals, admin. * **Feature** — New capability that doesn't exist yet. New page, endpoint, event, campaign. * **Spike** — Time-boxed research. Output = knowledge. ADR, PoC, vendor eval, market research. * **Improvement** — Enhancement to existing functionality. UX, perf, refactor, better process. * **Design** — UI/UX or creative work. Mockups, design system, branding, decks. ### GROUP: Size (exclusive, maps to AI token budgets) * **XS** — <50K tokens, ~30 min. _Single file, obvious change. Typo fix, config tweak._ * **S** — 50-100K tokens, ~2-4 hrs. _2-3 files, well-scoped. A component, hook, migration._ * **M** — 100-200K tokens, ~1-2 days. _Cross-module. Frontend + backend + migration + tests._ * **L** — 200-500K tokens, ~3-5 days. _Cross-layer, affects architecture. May need decomposition._ * **XL** — 500K+ tokens. _Epic scope. Needs decomposition into smaller issues._ ### GROUP: Strategy (exclusive, optional for non-engineering) * **Solo** — Single agent, end-to-end. Clear requirements, just go. * **Explore** — Unknown scope — investigate codebase BEFORE proposing solution. * **Team** — Multiple agents in parallel. Frontend + backend + tests concurrently. * **Human** — Requires human decision. UX choices, biz logic, architecture. Default for Ops. * **Worktree** — Git worktree isolation. Risky changes, experimental work. * **Review** — Audit or review only — no code changes. Output is a report. ### Ungrouped Labels (combinable) * **Component:** * Frontend * Backend * Database * Security * Performance * Infra * Testing * Web Quality * **Impact:** * Critical Path * Revenue * Grant * **Flags:** * Blocked * Quick Win * Epic ### Label Validation Rules When recommending or assigning labels, enforce these rules: 1. **Grouped labels are mutually exclusive.** An issue can have exactly ONE label from each group (Type, Size, Strategy). Never assign two Types, two Sizes, or two Strategies to the same issue. 2. **Maximum 2 Component labels per issue.** If an issue needs 3+ Component labels (e.g., Frontend + Backend + Database), it is too large and must be decomposed into smaller issues. Recommend decomposition instead of adding more Component labels. 3. **Component must be coherent with the assigned project.** An issue in the "Backend API" project should not have the "Frontend" Component label. If cross-cutting work is needed, create separate issues in each relevant project. 4. **Epic is a Flag, not a substitute for Milestones.** Use project milestones for tracking phases of work. The Epic flag is only for issues that serve as parent containers with sub-issues. 5. **Size XL means decompose, not label.** Never create a single issue with Size XL. Instead, decompose into smaller issues (S/M/L) and use a project milestone to group them. --- ## Dependency Resolution When processing "all" or "srd", determine the dependency order: - If OpenSpec `tasks.md` exists, extract dependencies from there - If TaskMaster AI MCP is available, use `task-master list` to get the dependency graph - Otherwise, analyze spec content for explicit dependency mentions (e.g., "requires X", "depends on Y", "after Z is complete") - If no dependencies are detectable, process in filename/number order and flag: "No explicit dependencies found — processing in file order. Verify this is correct." ## Linear Projects Mapping Read `linear-setup.json` at the repo root for the `projects` mapping. If the file does not exist, infer the project from the spec's domain: - Infrastructure, CI/CD, IaC, Docker, K8s -> **Infrastructure & DevOps** - AI agent, LLM, RAG, embeddings -> **Agent AI** - Mobile, Flutter, React Native -> **Mobile App** - Frontend, React, UI -> derive from team context - If ambiguous, flag: "Linear project assignment needs human confirmation" --- ## Output Format Provide an implementation brief using EXACTLY this Markdown structure. Do NOT use HTML tables. Do NOT skip sections — write "N/A" if a section doesn't apply. Write in English. ``````markdown # Step {NN}: {Title} > **Type:** `{type}` > **Size:** `{size}` > **Strategy:** `{strategy}` > **Components:** `{component1}`, `{component2}` > **Impact:** `{impact or "---"}` > **Flags:** `{flags or "---"}` > **Branch:** `{suggested branch name}` > **Spec Source:** `{path to spec file}` > **Status:** `{Not Started | Partially Done | Complete | Blocked}` > **Dependencies:** `{Step numbers or domain names that must be done first, or "None"}` > **Linear Project:** `{project name from mapping}` --- ## HUMAN LAYER ### User Story As a **{role}**, I want **{X}** so that **{Y}**. ### Background / Why {2-3 paragraphs in plain language. Extract from the spec content. Explain what this step achieves in the broader context of the system. If the spec is sparse, say what you know and flag what's missing.} ### Analogy {Compare to something familiar. Write "N/A" if not applicable.} ### UX / Visual Reference
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기