oliverspec-propose
Skill0 starsChanged 3 months agoMITView on GitHub
Propose a change via OliverSpec — create or update a Linear project with a PRD and a detailed TRD as Linear documents. Does NOT create tickets or write proposal artifacts to the git repo. Use when the user wants to propose, /oliverspec propose, oliverspec-propose, or turn explored decisions into a Linear PRD + TRD.
In this repository9 other files it gives its agents.
- babysitSkill
- dashboard-uiSkill
- factorySkill
- lab-notebookSkill
- oliverspec-applySkill
- oliverspec-babysitSkill
- oliverspec-exploreSkill
- oliverspec-scopeSkill
- oliverspec-shipSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. About 0 are common, 9 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 24
When PRD + TRD are ready: run oliverspec-scope, then oliverspec-apply.
- Distinctive: line 35
If a sentence could only matter to an engineer implementing the change, it belongs in the TRD.
- Distinctive: line 58
IMPORTANT: Do not proceed without understanding what to build.
- Distinctive: line 66
Before calling Linear, draft and show the user:
- Very specific: line 74
Do not draft a ticket list here — that belongs to oliverspec-scope after the docs exist.
- Distinctive: line 78
Read Linear MCP tool schemas before calling tools
- Very specific: line 79
Default team: Engineering unless user specified otherwise
- Distinctive: line 81
If a clear match exists → reuse it (confirm with user if ambiguous)
- Very specific: line 82
If none → save_project with name, setTeams: ["Engineering"] (or override), and a short summary
- Very specific: line 87
Use save_document with project set to the Linear project.
- Very specific: line 89
If a PRD doc already exists for this project (list_documents), update it by id
- Distinctive: line 92
Write the PRD only from a product perspective: problem, users, outcomes, and observable product behavior.
- Very specific: line 131
Use save_document with project set to the same Linear project.
- Very specific: line 133
If a TRD doc already exists (list_documents), update it by id
- Distinctive: line 136
Write the TRD from a deeply technical perspective.
- Very specific: line 205
Prefer updating an existing project/PRD/TRD over duplicating when the user is iterating
- Distinctive: line 206
Read Linear tool descriptors before first MCP call in the session
- Distinctive: line 207
Do not start implementation or ticket slicing in this skill
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Propose a change into Linear only. Never write OpenSpec folders, openspec/changes/, or other proposal markdown into the repository.
Artifacts created:
- Linear Project (create or reuse)
- Linear Document — PRD written from a product perspective (who/why/what experience)
- Linear Document — TRD written from a deeply technical perspective (how/where/with what systems)
Do not create Linear issues/tickets in this skill. Scoping into tickets is oliverspec-scope.
When PRD + TRD are ready: run oliverspec-scope, then oliverspec-apply.
Document voices (strict)
| Doc | Voice | Audience | Contains | Does not contain |
| PRD | Product | PMs, design, eng reading for intent | Problem, users, jobs-to-be-done, UX/behavior, success metrics, product risks | Schemas, API shapes, class/file names, infra, algorithms |
| TRD | Deeply technical | Engineers implementing | Architecture, data model, APIs, codepaths, failure modes, migrations, rollout | Soft product copy, marketing framing, vague “make it better” goals without mechanism |
If a sentence could only matter to an engineer implementing the change, it belongs in the TRD. If it could be read by product/design to judge whether we built the right thing, it belongs in the PRD.
Defaults
| Setting | Default |
| Linear team | Engineering (override only if user specifies another team) |
| Persistence | Linear only — no repo writes for proposals |
| PRD | Linear Document on the project via save_document |
| TRD | Linear Document on the project via save_document |
Input
Need from conversation or user:
- What to build — problem, approach, scope (from explore or the request)
- Project name — Linear project to create or reuse (ask if missing)
Optional: team override (default Engineering), priority, initiative.
IMPORTANT: Do not proceed without understanding what to build.
Steps
1. Crystallize the proposal (in chat first)
Before calling Linear, draft and show the user:
- PRD outline (product voice — see template below)
- TRD outline (deeply technical voice — see template below) — detailed enough to implement from without re-deriving design
- Mermaid diagrams — product flows may appear lightly in the PRD; architecture / data / sequence diagrams belong in the TRD (never ASCII)
Ask the user to confirm before creating or updating anything in Linear.
Do not draft a ticket list here — that belongs to oliverspec-scope after the docs exist.
2. Resolve Linear project + team
- Read Linear MCP tool schemas before calling tools
- Default team:
Engineeringunless user specified otherwise list_projectswith the project name query- If a clear match exists → reuse it (confirm with user if ambiguous)
- If none →
save_projectwithname,setTeams: ["Engineering"](or override), and a shortsummary
- Note the project name/id for subsequent calls
3. Create or update the PRD document
Use save_document with project set to the Linear project.
- If a PRD doc already exists for this project (
list_documents), update it byid - Otherwise create: title like
PRD: <feature name>
Write the PRD only from a product perspective: problem, users, outcomes, and observable product behavior. No implementation detail.
PRD template
# PRD: <Feature Name>
## Problem
<What hurts today, who feels it, and why it matters now>
## Goals
- <User/business outcomes — not engineering tasks>
## Non-goals
- <Explicit product boundaries>
## Users & use cases
- <Personas / roles and the jobs they need to complete>
## Product behavior
<End-to-end experience: happy path, edge cases, empty/error states — described as the user sees them>
## UX / interaction notes
<Screens, flows, copy intent, permissions as product rules — not component trees>
## Success metrics
- <How we know this worked for users/business>
## Risks & open questions
- <Product risks, unresolved product decisions>
## References
- TRD: <title / link filled after create>PRD anti-patterns: tables of DB columns, endpoint lists, library choices, “we’ll use Redis”, file paths, Temporal workflow names. Those go in the TRD.
4. Create or update the TRD document
Use save_document with project set to the same Linear project.
- If a TRD doc already exists (
list_documents), update it byid - Otherwise create: title like
TRD: <feature name>
Write the TRD from a deeply technical perspective. Assume the reader is an engineer who will implement and review the change. Be concrete: services, stores, schemas, APIs, control flow, failure modes. An implementer (or oliverspec-scope / oliverspec-apply) should not need to re-derive the design.
TRD template
# TRD: <Feature Name>
## Overview
<Technical summary — how we will build what the PRD requires>
## Current state
<Relevant systems, schemas, codepaths, ownership boundaries today — cite packages/services>
## Proposed architecture
<Components, boundaries, responsibilities, trust boundaries>
<!-- Mermaid: system / sequence / state diagrams -->
## Data model
<Schemas, migrations, stores (Postgres / ClickHouse / etc.), indexes, backwards compatibility, backfills>
## APIs & interfaces
<Routes, events, contracts, authz, idempotency, versioning>
## Detailed design
<Step-by-step control flow, algorithms, state transitions, concurrency, failure/retry modes>
## Integration points
<Existing services, workers, queues, third parties, config/env>
## Observability & ops
<Logging, metrics, tracing, alerts, feature flags, rollout / migrate / rollback>
## Testing strategy
<Unit / integration / e2e expectations tied to concrete modules>
## Risks, tradeoffs & alternatives considered
- <Technical tradeoffs with rationale>
## Open technical questions
- ...
## References
- PRD: <title / link>TRD anti-patterns: restating the PRD in engineer voice without mechanisms; “make it scalable” without a design; product roadmap language. Cross-link PRD ↔ TRD in both documents after create (update with URLs/titles).
5. Done — hand off
Summarize:
- Project name + URL
- PRD document title + URL
- TRD document title + URL
- Prompt: "Run
oliverspec-scopeto break the PRD/TRD into Linear tickets, thenoliverspec-applyto implement."
Guardrails
- No git/repo proposal artifacts — Linear only
- No tickets in propose — PRD + TRD documents only;
oliverspec-scopeowns issue creation - Confirm plan before creating Linear objects
- Default team Engineering
- Diagrams in Mermaid only — architecture / flow sketches use Mermaid, not ASCII
- PRD = product voice — who/why/what experience; no implementation detail
- TRD = deeply technical voice — how/where/with what systems; concrete enough to implement
- TRD must not be a thin restatement of the PRD
- Prefer updating an existing project/PRD/TRD over duplicating when the user is iterating
- Read Linear tool descriptors before first MCP call in the session
- Do not start implementation or ticket slicing in this skill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

