project-proposal
Draft a project card on a conversation message the project question answered yes on, and propose it with vault.projects.propose.
Skill by oneiron-dev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/oneiron-dev-project-proposal
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/project-proposal
What's inside
- Skill name
project-proposal- Description
- Draft a project card on a conversation message the project question answered yes on, and propose it with vault.projects.propose.
- License
- Apache-2.0
- Instructions
- 92 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Project proposal
Use this skill when the host dispatches you to draft a project card. Your
briefing names the job: `{"project_proposal": {"conversation", "turn",
"source_message", "thread", "principal"}}`. The typed project question
answered yes on that source message, and you are the house mind it named. The
briefing is a lookup hint. The stored yes decides what you may draft on.
A card is a proposal, not a project. It writes no project and grants nothing.
Only the card's person taps it, through the host's own door; no tap, no
project. The card is also the first turn of the goal-intake interview that the
new project's leader runs after the tap.
## Read the source
Read the source message and enough of its conversation to see what the person
wants: the room's turns (`vault.rooms.messages`) or the thread its turn starts
(`vault.rooms.get`). Use what the person said. If you cannot read the source
(it is gone or withheld from you), stop and draft nothing. Never draft from the
briefing alone.
## Draft
Fill every field from the conversation. Do not invent a goal the person did not
state.
1. **Goal** (`goal`): `goal` in the person's words, `why` it matters to them,
and `axes`. Axes are names only: what should improve, what must not regress
and what gets spent. The goal-intake interview asks for each measure and
bound after the tap, so never put a number, measure or bound on the card.
Keep `goal` and `why` to a sentence or two each.
2. **Leader** (`leader_agent_def_ref`): the AGENT_DEF that leads the project.
Name the one the person asked for. Otherwise name the dispatchable definition
that best fits the work.
3. **Board** (`board_human_refs`): the humans who answer the project's asks.
Always include the principal. Add only people the person named who can see
the conversation.
4. **Budget share** (`budget_share_bps`): the project's share of its parent's
budget, in basis points from 0 to 10000. Translate a budget the person
stated. When they stated none, propose 1000 (a tenth).
5. **Starting skills** (`starting_skill_refs`): the vault skills that fork into
the project when it is minted, for its leader and workers. Name only skills
the work clearly needs; an empty list is valid. Only vault skills go on the
card. If the work needs a marketplace skill, say so in your reply; never
import it from this run.
Every reference is a canonical lowercase hex ID with no surrounding space. A
list has no duplicates and at most 128 entries. The goal needs at least one
axis, and the board needs at least one human.
## Propose
Pick `card_id` as `project-` followed by the source message ID. A card ID uses
only ASCII letters, digits, `.`, `_` and `-`, and is at most 128 bytes. Call
`vault.projects.propose` with:
```json
{
"card_id": "project-<source_message>",
"source_message_ref": "<source_message>",
"goal": {"goal": "...", "why": "...", "axes": ["..."]},
"picks": {
"leader_agent_def_ref": "<agent def id>",
"board_human_refs": ["<principal>"],
"budget_share_bps": 1000,
"starting_skill_refs": []
}
}
```
`source_message_ref` is the briefing's `source_message`, exactly. The person
the card is for and its thread come from the stored detection; never pass them.
The same call with the same card returns the stored card.
On a refusal, read the reason:
- "no project question answered yes on this message" or "this agent was not
asked to draft this card": stop. Never draft on another message instead.
- "the conversation already shows an unanswered card": stop. A conversation
shows one unanswered card at a time (in a room, one per thread).
- "this card id names another card": a card already stands under this ID. It
stays; stop.
- A field refusal (empty text, a duplicate, a share over 10000, a malformed
reference): fix that field and propose again.
## Never
- Never call `vault.projects.confirm`, mint, or write a project, goal record or
raw claim. The tap belongs to the person, on the host's door.
- Never dismiss a card for the person.
- Never put a secret on the card: the person and the room's members read it.
## Reply
Return the card ID and one line on what it proposes. Nothing else happens until
the person taps or dismisses the card.From oneiron-dev/oneiron, Apache-2.0.
More from oneiron-dev/oneiron
- 0.561score
feedback-triage
oneiron-dev
Read one note from the open feedback inbox, or one issue from a bound GitHub repository, and name each problem it reports, with a fix when it proposes one.
SkillAFreshness: AClaude Code +9 - 0.561score
eval-authoring
oneiron-dev
Keep each model seat's eval set from the vault's own history, deciding purposes for new source groups, cases, date cuts and retirements.
SkillAFreshness: AClaude Code +9 - 0.561score
team-rotation
oneiron-dev
Run a team whose roles rotate by turn inside the leader's patch, for reframing and open questions.
SkillAFreshness: AClaude Code +9 - 0.558score
team-committee
oneiron-dev
Run a team where a few members deliberate and the chair decides (Council Mode).
SkillAFreshness: AClaude Code +9 - 0.558score
team-market
oneiron-dev
Run a team where a referee signed before the work decides, such as a test suite, a holdout or a pinned judge.
SkillAFreshness: AClaude Code +9 - 0.558score
team-lead
oneiron-dev
Run a project's CEO starter over an existing task promise, coordination skills and bounded attempts.
SkillAFreshness: AClaude Code +9 - 0.558score
goal-intake
oneiron-dev
Interview a human for a typed project goal record and commit it via authenticated intake.
SkillAFreshness: AClaude Code +9 - 0.558score
team-ceo-decides
oneiron-dev
Run a team where the leader decides alone, after independent advice.
SkillAFreshness: AClaude Code +9 - 0.558score
team-shape
oneiron-dev
Choose how many agents to spawn and who decides, starting from one agent.
SkillAFreshness: AClaude Code +9 - 0.558score
team-vote
oneiron-dev
Run a team where members vote on finished options first, and debate only on request.
SkillAFreshness: AClaude Code +9 - 0.557score
oneiron-email-setup
oneiron-dev
Walk the owner through connecting a Gmail or Google Workspace mailbox to their agent, from the account to a checked connection.
SkillAFreshness: AClaude Code +9 - 0.557score
oneiron-linkedin-setup
oneiron-dev
Walk the owner through connecting LinkedIn to their agent through a signed-in session, with the risks of acting as them.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 17, 2026 (13 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/oneiron-dev/oneiron
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from oneiron-dev
- 0.561score
feedback-triage
oneiron-dev
Read one note from the open feedback inbox, or one issue from a bound GitHub repository, and name each problem it reports, with a fix when it proposes one.
SkillAFreshness: AClaude Code +9 - 0.561score
team-rotation
oneiron-dev
Run a team whose roles rotate by turn inside the leader's patch, for reframing and open questions.
SkillAFreshness: AClaude Code +9 - 0.561score
eval-authoring
oneiron-dev
Keep each model seat's eval set from the vault's own history, deciding purposes for new source groups, cases, date cuts and retirements.
SkillAFreshness: AClaude Code +9 - 0.558score
team-ceo-decides
oneiron-dev
Run a team where the leader decides alone, after independent advice.
SkillAFreshness: AClaude Code +9 - 0.558score
goal-intake
oneiron-dev
Interview a human for a typed project goal record and commit it via authenticated intake.
SkillAFreshness: AClaude Code +9 - 0.558score
team-committee
oneiron-dev
Run a team where a few members deliberate and the chair decides (Council Mode).
SkillAFreshness: AClaude Code +9
Cite this page
project-proposal skill. Agent Mart. https://agentmart.dev/skills/oneiron-dev-project-proposal (last updated 2026-10-24)