To spec
Turn explicitly designated input documents into an approved implementation spec in a per-spec folder under .context/specs. Use when the user explicitly invokes $to-spec with local or attached documents, documentation URLs, or pasted Markdown and wants uncertainties resolved through a one-question-at-a-time interview before the spec is written.From its SKILL.md
npx -y skills add victorgrein/victorgrein-skills --skill to-specAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 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.
SKILL.md
5.7 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
To Spec
Create a standalone spec from explicit inputs and answers gathered during this skill. Do not use conversation history from before the invocation as requirements context. Do not implement the work or publish the spec to an issue tracker.
Input contract
- Require at least one source explicitly identified as
inputin the invocation or a follow-up response. - Accept local paths, attached documents, documentation URLs, and pasted Markdown.
- Treat paths as relative to the current working directory unless the user provides an absolute path.
- Do not infer that unrelated open files or previously mentioned documents are inputs.
- If no input is provided, ask for one source and wait.
- If a source is missing, inaccessible, or unreadable, identify it and ask for a replacement. Do not guess its contents.
Example invocations:
$to-spec input: docs/new-form.md
$to-spec inputs: docs/brief.md, https://example.com/api-design
$to-spec input:
## Feature idea
...
Process
1. Read and investigate
- Resolve and read every designated input. For a long source, inspect its structure and systematically read all sections relevant to requirements, constraints, decisions, and exclusions.
- Use the inputs as the initial requirements context. Use only answers produced during this skill to supplement them.
- Explore the repository for discoverable facts: current behavior, domain vocabulary, applicable ADRs, existing interfaces, constraints, and test patterns. Repository evidence may clarify implementation facts but must not silently invent or override product requirements.
- If the target
.context/specs/<spec-slug>/SPEC.mdalready exists, read it as another input before proposing changes.
2. Resolve every material doubt
Build an internal decision tree from the inputs and repository evidence. Resolve dependencies before downstream choices.
- Look up discoverable facts instead of asking the user.
- Ask about product intent, trade-offs, ambiguous scope, conflicting sources, and decisions that cannot be discovered.
- Ask exactly one question at a time and wait for the answer.
- Include a concrete recommended answer and its main trade-off with every question.
- Never silently choose between conflicting inputs.
- Continue when an answer exposes another unresolved branch.
- Avoid questions that do not materially affect the spec.
Do not proceed while any material decision, conflict, or acceptance criterion remains unresolved.
3. Confirm shared understanding
When no material doubts remain, present a concise synthesis covering:
- The user problem and intended outcome
- The agreed solution and important behavior
- Major implementation decisions and constraints
- Test seams and acceptance criteria
- Explicit exclusions
- The proposed
.context/specs/<spec-slug>/SPEC.mdpath
Ask for explicit confirmation that this shared understanding is correct. If the user changes or rejects anything, return to the one-question-at-a-time loop. Do not create directories or write files before confirmation.
4. Write the spec
After confirmation:
- Derive
<spec-slug>from the approved title using lowercase kebab-case. Ask during the interview if more than one clear slug is plausible. - Create
.context/and.context/specs/only if missing. Preserve all unrelated content already under.context/. - Create or update
.context/specs/<spec-slug>/SPEC.mdusing the structure below. - When updating an existing spec, revise the standard sections to match the confirmed understanding. Preserve unrecognized or manually added sections unless the user explicitly approved their removal.
- Make the document understandable without access to the conversation.
Use this structure:
# <Spec title>
## Inputs
List each input path, attachment name, URL, or inline-input label and briefly state its role.
## Problem Statement
Describe the problem from the user's perspective.
## Solution
Describe the agreed solution from the user's perspective.
## User Stories
Provide a thorough numbered list in the form: "As a <user>, I want <capability>, so that <benefit>." Cover relevant actors, primary flows, edge cases, and failure behavior.
## Implementation Decisions
Record approved architecture, module boundaries, interfaces, schemas, contracts, interactions, compatibility requirements, and technical constraints. Do not include volatile file paths or code snippets. Exception: include only the decision-rich portion of a prototype-derived state machine, reducer, schema, or type shape when it communicates an approved decision more precisely than prose, and label it as prototype-derived.
## Testing Decisions
Define externally observable behavior, the highest practical test seams, affected modules or boundaries, relevant prior test patterns in the repository, and acceptance scenarios. Prefer existing seams and propose the fewest new seams possible.
## Out of Scope
List explicit exclusions and deferred work.
## Further Notes
Record resolved source conflicts, important assumptions, migration or compatibility notes, and other context needed by an implementer.
Do not add an unresolved-open-questions section. If an important question is still open, return to the interview instead of writing the spec.
5. Report completion
Return the created or updated spec path and a brief summary of the recorded inputs. Do not create an issue, apply labels, or make implementation changes.
What ships with it: 1 file
272 B alongside SKILL.md
agents/
- openai.yaml272 B