본문으로 건너뛰기
cccskills
무료GitHub에 공개

spec-fixture

Author a completed-spec fixture — a seeded intent graph plus a believable four-phase interview transcript — for a brunch feature, so it can feed any downstream tooling that consumes a completed spec or dogfood the UI. Use when you need a real completed specification in .brunch/brunch.db for testing or demo: pick a feature from memory/SPEC.md (or a free description), choose a stress profile (coverage|clean), and produce a registered scenario seed + an interview-questions doc that match exactly.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md8.3 KB
  • references/seed-pattern.md9.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Spec Fixture

Turn one brunch feature into a completed-spec fixture: a seeded intent graph (requirements, criteria, supporting knowledge, typed edges) with all four interview phases closed, plus a believable interview transcript. The fixture is a real specification row in .brunch/brunch.db, usable as input to any downstream tooling that consumes a completed spec, or for dogfooding the workspace UI.

Input

$ARGUMENTS = a feature + optional profile.

  • Feature: a memory/SPEC.md capability-requirement number (e.g. "req 34–36") or a free-form description.
  • Profile: coverage (default — maximize graph coverage / stress downstream consumers) or clean (tidy demo fixture). Either way, always produce a believable transcript.

Use when

  • You need a real completed spec to exercise downstream tooling that consumes one (plan generation, the orchestrator) end-to-end.
  • You want a self-referential demo spec (brunch speccing a brunch feature).
  • You want to dogfood the interview/graph UI against realistic data.

Not for: editing the product schema, building the downstream tooling itself, or one-off throwaway graphs that don't need to persist.

Why this works (read before designing)

  • Downstream tooling reads the graph snapshot, not the transcript. It consumes knowledge_item + knowledge_edge; turn prose is irrelevant to it. So graph fidelity is for the consumer; the transcript is for the UI/demo. Get the graph exactly right; make the transcript believable.
  • Execution order is not spec truth. The observer captures epistemic deps (assumptions/decisions/constraints point at requirements), never req→req execution order. Any downstream ordering is synthesized from requirement content. So a faithful fixture seeds zero req→req depends_on and lets the content imply the order.
  • Two unrelated "impact"s. Turn impact (high|medium|low, read from turn.impact, defaults to low) is the interviewer's consequence hint. The edit-impact tier (none|soft|hard) is a separate edit-time cascade signal. This skill sets the turn impact; it does not touch the cascade tier.

Method

Defining the content (optional ln-* aids)

The fixture is an elicitation artifact, so the repo's ln-* elicitation skills can shape its content during steps 1–3. Use each skill's output to populate the fixture graph — do not let them write memory/SPEC.md / PLAN.md, which are dev-layer planning, not this product-layer fixture data.

  • ln-grill — pressure-test the feature into goals, constraints, and a thorough requirement set (the grounding/design content + supporting nodes).
  • ln-disambiguate — turn vague criteria into concrete behavioral acceptance criteria (sharper criterion nodes).
  • ln-oracles — design which criteria verify which requirements (the verifies edges) and the "expected downstream behavior" assertions.
  • ln-scope — frame each buildable requirement as a slice with target behavior and acceptance criteria, mirroring requirement → verifies → criterion.

1. Frame the feature

Name it snake_case. Decide mode (greenfield | brownfield) and delivery posture (incremental feature | end-to-end build). Brownfield + incremental is typical for a feature on existing code, and routes cook output to <dir>/.brunch/cook/plan.yaml.

2. Design the intent graph

Enumerate nodes and edges before writing code. Nodes: requirement and criterion (the buildable spine) plus supporting goal / term / context / constraint / decision / assumption. Edges are typed and must satisfy the relationship policy — see references/seed-pattern.md for the canonical direction table and the guard.

Apply the profile:

  • coverage — bake in deliberate stressors so a downstream consumer's full behavior gets exercised (graph read, order synthesis, validation):
    • Full verifies coverage of every buildable requirement.
    • ≥1 criterion that verifies two requirements.
    • ≥1 requirement verified by multiple criteria.
    • ≥1 non-buildable, constraint-phrased requirement (typed requirement, phrased as a "must not" / invariant) with no verifies edge — reproduces the real data-quality case a validation pass must catch.
    • Zero req→req depends_on — force downstream ordering to be synthesized from content; make the content imply a clear order.
    • ≥1 adversarial epistemic edge (e.g. refines req→req, or assumption/decision/constraint → requirement) that a graph read must ignore for ordering.
  • clean — well-ordered, every buildable requirement verified, no non-buildables, no adversarial edges. Optimized for a smooth demo run.

3. Write the interview-questions doc

docs/fixtures/<name>-interview.md. It is the source-of-truth and the capture map for the seed. Include:

  • A "Fixture fidelity" note (transcript reproduced verbatim from the seed).
  • The four-phase transcript (grounding → design → requirements → criteria) as believable Q&A, each grounding/design question tagged with its impact.
  • The capture map: node inventory (ref, kind, content) + edge inventory (canonical for the seed).
  • Expected downstream behavior: assertions for how a consumer reads, orders, and validates the graph, so the end-to-end test has a target.

Assign impact by the rubric "how much the answer shapes downstream choices" (src/server/prompts/interviewer-grounding.md): strategic forks, the core goal, and binding constraints are high; localized design choices are medium; assumptions-to-validate are low. Don't make everything high — the spread is the signal.

4. Author the seed

Put seedAccepted<Feature>Spec(db, projectId) in its own file src/server/fixtures/scenarios/<name>.ts (one fixture per file — keeps the scenarios.ts registry lean), then import it into src/server/fixtures/scenarios.ts and register a <name>-all-phases-closed scenario there. Mirror any existing all-phases-closed scenario seed. The seed must: build real grounding/design Q&A turns (set turn-level impact), capture each supporting item at the turn that elicits it, accept the requirements + criteria reviews, confirm all four phase outcomes, then add the policy-guarded edges. Full code skeleton and the relation-policy table: references/seed-pattern.md.

5. Load + verify

  • npm run fix then npm run check — must be green.
  • Verify the graph against a fresh in-memory DB (counts by kind, edges by relation, four phases confirmed, and the profile's stressors). Use the verification script template in the reference file; delete it after.
  • Load into the real DB. Re-seeding is additive, so to avoid duplicate specs, delete-then-reseed (FK-off across spec-scoped tables — snippet in the reference) before npm run seed -- <name>-all-phases-closed.

6. Reconcile

The doc transcript must match the seed verbatim — questions, answers, impacts, and captures. If you simplify the seed (e.g. plain Q&A instead of preface cards), update the doc to match, and vice versa. Note any folding (e.g. edge-styling intent folded into a requirement) in the doc's fidelity note.

Verification checklist

  • npm run check green.
  • In-memory seed asserts expected node/edge counts and the profile's stressors.
  • All four phase outcomes confirmed.
  • Every buildable requirement has ≥1 verifies; non-buildables have none.
  • Every edge passes supportsKnowledgeRelationship.
  • Doc transcript matches the seeded turns verbatim (incl. per-turn impact).
  • Real DB has exactly one spec for this feature (no stale duplicates).

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Build AI chat interfaces using ai-elements components — conversations, messages, tool displays, prompt inputs, and more. Use when the user wants to build a chatbot, AI assistant UI, or any AI-powered chat interface.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashintel/brunch82026년 10월 17일 업데이트

Search the live web via Perplexity Search API. Use when you need current documentation, release notes, vendor pages, news, domain-constrained web search, or date/recency filtering. Not for local codebase search or stable docs already in context.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashintel/brunch82026년 10월 17일 업데이트

cli-cdp

무료

Chrome DevTools CLI for browser automation via shell commands. Use when interacting with web pages from the command line — navigating, clicking, filling forms, inspecting console/network, taking screenshots, or extracting page content. Triggers on: browse a page, automate Chrome, inspect console, check network requests, take a screenshot, fill a form, click a button.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashintel/brunch82026년 10월 17일 업데이트

Uses the chrome-devtools-axi CLI for browser automation, accessibility-tree snapshots, console and network inspection, screenshots, Lighthouse audits, and performance traces. Use when interacting with Chrome from the shell, especially when the user mentions chrome-devtools-axi, AX snapshots, browser debugging, or DevTools automation from the command line.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashintel/brunch82026년 10월 17일 업데이트

cli-cmux

무료

Deep expertise in cmux — the terminal multiplexer with native browser views. Use when managing panes, reading terminal output, sending keystrokes, opening browser views, or manually testing web UIs and TUIs inside cmux. Triggers on: cmux, open a browser pane, split terminal, read screen, send keys, test this UI in cmux, preview in cmux.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashintel/brunch82026년 10월 17일 업데이트

Uses the gh-axi CLI for GitHub shell operations: issue, pull request, workflow run, release, repo, search, and API tasks. Prefer this over regular `gh` for GitHub reads and simple mutations when an agent needs compact, structured, suggestion-rich output. Triggers on: gh, GitHub CLI, github issue, github pr, pull request, workflow run, github release, gh api, repo inspection, list PRs, view issue, check workflow runs, inspect repo, GitHub shell operations.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hashintel/brunch82026년 10월 17일 업데이트

hashintel의 스킬 모두 보기

이 스킬의 문제 신고