q00/ouroboros/seed
- community
Checking that the SKILL.md file is still in the repository.
Use when goal, constraints, and success criteria are already settled and the user wants them frozen into a formal spec an agent can execute and verify: 'turn this into a spec', 'write it up as a Seed', or right after an interview. Returns an immutable Seed with acceptance criteria. Not for vague requests (use interview first).
Install
npx vskill@latest install q00/ouroboros/seedSKILL.md
/ouroboros:seed
Generate a validated Seed specification from an interview or from requirements this conversation already settled.
Required Skill Capabilities
ask_user (the active runtime's user-question surface), inspect_code, call_mcp, orchestrate_subagents (lateral persona payloads), run_shell (audit-trail and prefs writes), refine_answer (confirm free-form decisions), maintain_ledger (QA scores, candidate decisions, rejected proposals).
Usage
Instructions
Python Runtime (Required)
Define this resolver in the same shell before running any shell snippet below, and call ouroboros_python with every argument quoted. It accepts only Python 3.12 or newer and falls back to uv.
<!-- ouroboros-python-resolver:start -->
<!-- ouroboros-python-resolver:end -->
Loading MCP tools (deferred-schema guard)
Ouroboros tools may be deferred, and a schema loaded on one turn can unload by the next. Immediately before each ouroboros_* call, load it with the active runtime's tool-discovery capability: "+ouroboros seed" for ouroboros_generate_seed; "+ouroboros qa" for ouroboros_qa; "+ouroboros lateral" for ouroboros_lateral_think. A call whose schema is not loaded fails with "Invalid tool parameters". If the tool is already callable, discovery is a no-op and an empty result is expected. Use the fallback only when the tool is genuinely absent.
Load ouroboros_generate_seed before choosing a path: if it is callable, use Path A; use Path B only when it is genuinely absent (no Ouroboros MCP server).
Delegated responses are not artifacts. If any tool below returns status: "delegated_to_subagent" (with dispatch_mode: "plugin" and possibly an _subagents array), keep the returned session ID, wait for the plugin-managed subagent results, and parse the artifact (Seed YAML, QA verdict, or persona texts) from those results, never from the envelope or its prompts.
Path A: MCP Mode (Preferred)
- Pick the entrance:
session_idgiven, or a recentouroboros_interviewsession ID in the conversation: use the interview session (step 2).- No interview, but THIS conversation already settled the goal, the constraints, and verifiable success criteria (a lateral decision, a brownfield scan, or plain discussion that converged): use the interview-less path below. Do not send the user to
ooo interviewto repeat what they already said. - Otherwise ask the user which interview or requirements to seed.
Interview-less path (session_context): `` Tool: ouroboros_generate_seed Arguments: session_context: goal: <the user's own settled wording, verbatim, never your paraphrase> acceptance_criteria: [<verifiable checks: a command, a visible behaviour, a measurable state>] constraints: [<optional>] decisions: [<optional; each becomes a constraint>] project_type: greenfield | brownfield ` Every value enters the Seed byte-for-byte, so shell chains in an AC (ruff check && pytest) are allowed. If the response has status: "gap_questions_required", ask the user exactly the listed questions, merge the answers into session_context`, and call again; that is the whole interview.
- Interview session:
`` Tool: ouroboros_generate_seed Arguments: session_id: <interview session ID> `` The tool extracts requirements from persisted interview state, scores ambiguity (must be <= 0.2), and returns Seed YAML.
- If no Seed YAML results, stop and ask the user to resume generation or supply the artifact. Never fabricate a Seed.
- Run the Advisory QA Check below, then go to "After Seed Generation".
Path B: No MCP Server
- Read the
seed-architectprompt and adopt that role:$OUROBOROS_AGENTS_DIR/seed-architect.mdwhen that override is set; else the installed package's copy, printed withrun_shell:
``bash uvx --isolated --python '>=3.12' --from ouroboros-ai python -c "import importlib.resources as r, sys; print(r.files('ouroboros.agents').joinpath(sys.argv[1]).read_text(encoding='utf-8'))" seed-architect.md ``
else src/ouroboros/agents/seed-architect.md in a source checkout. Resolve every agent prompt this skill names the same way, substituting its file name.
- Recover the requirements before drafting; never invent missing context:
- With a
session_id, use current-thread Q&A and corrections only when they belong to that session; if incomplete, useinspect_code/run_shellto find persisted or exported artifacts for that ID (for example under~/.ouroboros/data/). Keep a persisted transcript as evidence, but let explicit same-thread corrections supersede it. - Without a
session_id, use current-thread Q&A only when it forms one coherent interview. - Otherwise ask for the transcript or a requirement summary, or suggest
ooo interview. Never seed from an absent or mismatched transcript.
- Generate the Seed YAML, run the Advisory QA Check, then go to "After Seed Generation".
Advisory QA Check (single pass, non-blocking)
Run QA exactly once on the generated Seed. The verdict is advisory and never blocks: the Seed is presented as final regardless of score, and there is no QA-until-PASS loop.
Generation (Path A tool or Path B role) runs exactly once and fixes the Seed's ontology. Any later revision is a direct YAML edit by you; never call ouroboros_generate_seed again (it takes no revision hints and would discard the ontology).
MCP QA mode: `` Tool: ouroboros_qa Arguments: artifact: <the seed YAML> quality_bar: "Seed must be internally consistent, acceptance_criteria must be measurable and testable, constraints must be concrete (no vague terms), ontology_schema must cover all entities referenced in goal/criteria, and there must be no contradictions between fields. acceptance_criteria must also be parsimonious in the ontological sense: a criterion names a state of the finished work a user can see is true, while an implementation step names a means of reaching it, and only the first belongs in the list. Read each criterion beside its siblings — one intelligible only as a move toward a sibling is that sibling's means and belongs merged into the outcome it serves, and flagging that is as important as flagging a missing piece, since it commits the seed to an unverified path. How many criteria a goal has follows from that judgment, so weigh each criterion against its siblings." artifact_type: "document" pass_threshold: 0.90 seed_content: <the seed YAML> qa_session_id: <reuse across passes> iteration_history: <accumulated across passes> `` The 0.90 bar (stricter than the default 0.80) labels the verdict; it gates nothing.
Fallback QA mode (QA tool absent): read the qa-judge prompt (resolved as in Path B step 1), adopt that role, and evaluate the Seed with the same quality bar and threshold. It returns JSON with lowercase verdict (pass/revise/fail), score, dimensions, differences, suggestions, reasoning; uppercase the verdict only for display and add no non-schema fields. There is no qa_session_id; keep pass history in the audit block.
Present, always in this order:
QA advisory: <PASS|REVISE|FAIL>, score X.XX (bar 0.90).- Below the bar: the top 2-3 suggestions as short advisory bullets (findings, not tasks). Apply none automatically.
- The complete Seed YAML in a fenced
yamlblock. - For REVISE or FAIL, one opt-in line such as
Want a refinement pass on these findings? Otherwise the seed stands as-is.For FAIL (< 0.40) also mentionooo interview(revisit requirements) orooo unstuck(challenge assumptions). Then continue to "After Seed Generation"; the Seed is final unless the user opts in.
Only on an explicit opt-in, run one refinement pass (below), re-run QA once for an updated advisory line, and present the revised YAML. Each further pass needs a fresh explicit opt-in; never chain passes. Before each later QA call, append the previous verdict and the applied/rejected decisions to iteration_history.
Refinement pass: Wonder → Reflect → Refine → Restate (opt-in)
Diverge across independent sources, debate, let the user decide, then apply. No candidate is accepted by default, and you never apply a revision on your own (User Adoption Gate).
Wonder: collect proposals.
- QA: the verdict's
suggestions(structural gaps in the YAML; QA cannot see the interview). - Socratic lens (
socratic-interviewerprompt, resolved as in Path B step 1): check the Seed against interview evidence (persisted session state first, then this conversation) for 2-4 items: dropped or softened user constraints, rejected scope that crept back, flattened nuance, unagreed assumptions. Without evidence, recordno Socratic proposal: dialectic context unavailable; never invent preferences. A QA/Socratic conflict goes to Reflect; neither side wins automatically. - Lateral personas (only if
ouroboros_lateral_thinkis callable):
``` Tool: ouroboros_lateral_think Arguments: problem_context: | User opted into a refinement pass (QA advisory score X.XX, bar 0.90). Current seed YAML: <YAML> QA suggestions:
- <suggestion 1>
Original user goal from interview: <recall> current_approach: "The seed as currently drafted (above)." persona: "all" failed_attempts:
- <candidates rejected in earlier passes>
`` Extract at most 1-2 concrete, discrete revisions from each persona's prose and drop abstract advice. If the response carries the <!-- ouroboros-lateral-inline-dispatch-v1 base64 ... --> sentinel and the runtime can dispatch isolated subagents, decode it and send each payload.prompt + payload.context through orchestrate_subagents; otherwise read the visible persona sections (split on section headers, not bare ---). If the tool is absent, record no lateral proposals: MCP lateral tool unavailable` and do not emulate personas.
Reflect: structure the debate. Tag each candidate with its backing sources and a type (expand, sharpen, remove, resolve_conflict): convergent (two or more sources agree, strong), divergent (sources conflict; the user resolves it), singleton (weaker). Show a balance line such as Balance: 4 expand / 2 sharpen / 1 remove as information, not a warning.
Refine: user gate. Ask single-choice ask_user questions only, conflicts first: one per conflict group (one option per resolution plus "Leave unchanged"), then strong revisions ("apply all, review one by one, or skip"), then singletons ("review one by one or skip all"). Every batch offers "keep current seed"; confirm free-form answers with refine_answer. Pass rejected candidates as failed_attempts on later lateral calls.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/seed/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/q00/ouroboros/seed)