一键导入
project
Create new research projects — either propose (agent-initiated gap analysis → formal proposal) or scaffold (human-initiated interview → project directory)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create new research projects — either propose (agent-initiated gap analysis → formal proposal) or scaffold (human-initiated interview → project directory)
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when a file or module is too large, responsibilities are tangled, or a cross-cutting redesign is needed
Use when literature notes exist and need citation verification, or before publishing any artifact that cites literature
Use at the end of a work session to embed learnings into conventions. Simplified for models with lower reasoning capacity.
Use at the end of a work session, or when accumulated findings need to be embedded into conventions, skills, or patterns
Use when the Slack bot needs to handle an operational action like launching an experiment, querying status, or processing approvals
Use when a plan, finding, or design needs adversarial review before committing to it
| name | project |
| description | Create new research projects — either propose (agent-initiated gap analysis → formal proposal) or scaffold (human-initiated interview → project directory) |
| complexity | opus-only |
| model-minimum | opus |
| disable-model-invocation | false |
| allowed-tools | ["Read","Grep","Glob","WebSearch","WebFetch","Write","Bash(git diff *)","Bash(git log *)","Bash(git status)","Bash(git add *)","Bash(git commit *)","Bash(mkdir -p *)"] |
| argument-hint | propose [topic] | scaffold <description> |
| interview | true |
Unified skill for creating new research projects. Two modes:
/project propose [topic] — Agent-initiated. Scans the repo for research gaps, assesses whether a gap warrants a project, and writes a formal proposal for PI review. Proposals require approval to activate. If topic is omitted, scans for candidate gaps first.
/project scaffold <description> — Human-initiated. Interactive interview to understand what the human wants, then scaffolds the project directory with all required files. No approval needed — the human requesting it has authority.
When to use which mode:
proposescaffoldAgent-initiated project proposal. All inputs are repo-resident (experiment findings, open questions, literature gaps, operational patterns).
Ground in evidence, not speculation. Every claim about a gap must cite a specific source: an experiment finding, an operational pattern, a literature gap, an open question.
Research questions over implementation requests. A proposal must center on a question that produces knowledge when answered. "Build a dashboard" is not a project — "Does real-time visualization reduce PI intervention rate?" is.
Proportionate scope. Prefer focused investigations over broad surveys. A project that answers one specific question well is more valuable than one that vaguely addresses five.
Explicit uncertainty. State what you don't know. If feasibility depends on an untested assumption, propose a pilot step.
If a topic was provided, skip to Step 2. Otherwise, scan these sources:
## Open questions sections in all active project READMEs. Look for questions not addressed by existing experiments.EXPERIMENT.md files for unactioned recommendations (Recommendations, Proposed solutions, Next steps) beyond current project scope..scheduler/metrics/sessions.jsonl for recurring operational issues.literature/synthesis.md files for gaps between existing literature and current questions.docs/roadmap.md and projects/akari/plans/long-term-roadmap.md for capability gaps.Select the single most promising candidate — strongest evidence and clearest path to actionable findings.
Evaluate whether the gap warrants a full project:
Project-worthy if:
Better as an existing-project task if:
Better as an infrastructure task if:
State your assessment explicitly. If the gap is better handled as a task, write the task instead.
Save to projects/akari/proposals/<slug>.md:
# Project Proposal: <Title>
Date: YYYY-MM-DD | Status: proposed (requires PI approval)
## Research question
<One sentence, falsifiable.>
## Gap evidence
<Specific evidence citing file paths or URLs.>
## CI layers
<Which layers are involved.>
## Proposed investigation
Mission: <One sentence.> | Done when: <Verifiable condition.>
Method: <3-5 steps.> | Expected findings: <What this produces.>
## Feasibility
Resources: | Resource | Estimate | Available? |
Dependencies: <What must be true.> | Risks: <What could go wrong.>
## Scope
In: <bulleted> | Out: <bulleted>
## Alternatives & Roadmap
Alternatives: <Other approaches.> | Roadmap: <Link to docs/roadmap.md.>
Check against:
Revise if any check fails.
Follow docs/sops/commit-workflow.md. Commit message: project propose: <title> — awaiting PI approval
Add an entry to APPROVAL_QUEUE.md under Pending:
### YYYY-MM-DD — New project proposal: <title>
Project: akari
Type: structural
Request: Activate new research project based on proposal at `projects/akari/proposals/<slug>.md`
Context: <1-2 sentence summary of gap evidence>
Human-initiated project creation. Interactive — requires human input at multiple steps. Do not proceed past interview questions until the human has answered.
When running in a deep work session (autonomous, headless), use the question marker protocol to request human input:
[QUESTION: <id>]...[/QUESTION] markerMarker format:
[QUESTION: project-scaffold-<unique-id>]
skill="project"
mode="scaffold"
1. What is the research question or objective?
2. What are the success criteria?
[/QUESTION]
The marker will be detected by the scheduler, the questions posted to Slack, and the session ended. When the human replies, a new deep work session will spawn with the answers in the thread context.
Continuation detection: When resuming, check the thread context for human answers. Parse the previous messages for responses to your questions and continue from where you left off.
Extract from the provided description:
Summarize in 2-3 sentences. Present to the human for confirmation before proceeding.
Before the interview, search for relevant prior work. This prevents suggesting approaches that contradict existing knowledge.
Search in parallel:
grep -r "collect.*images\|user.*image\|data.*access" projects/*/experiments/*/EXPERIMENT.md projects/*/*.md 2>/dev/null | head -20production-code.md, *-data-access.md, infrastructure-audit.md in project directoriesprojects/<project>/decisions/*.md and decisions/*.md for constraintsIf relevant knowledge exists:
Example: When scaffolding a project that needs user image collection, the bot should search for existing user-image-data-access.md or similar docs in other projects and ask whether to use the same approach.
Ask clarifying questions to fill gaps. Adapt to what the description already covers.
Required information (ask if missing):
Optional questions (ask if relevant):
projects/ for potential connectionsInterview protocol:
Before creating the project:
projects/*/README.md — check for mission overlapprojects/akari/proposals/ for pending proposals on the same topic<project> which has mission: <mission>. New project or tasks within existing one?"Wait for response before proceeding.
Create projects/<slug>/ with the following files:
README.md — following CLAUDE.md project README schema:
# <Project Title>
Status: active
Mission: <one-sentence objective — synthesized from interview>
Done when: <verifiable condition — from success criteria>
## Context
<3-5 sentences from motivation, research question, and scope.>
## Log
### YYYY-MM-DD — Project created
Project initiated via `/project scaffold`. <1-2 sentences from interview.>
Sources: none (project creation)
## Open questions
- <any open question from the interview>
TASKS.md — initial tasks using CLAUDE.md task schema:
# <Project Title> — Tasks
<Human-provided tasks, or 3-5 bootstrapping tasks:>
Research project:
- [ ] Literature review on <topic>
- [ ] Design first experiment
Operational project:
- [ ] Define requirements and constraints
- [ ] Survey existing tools and approaches
budget.yaml + ledger.yaml — only if the human indicated resource consumption.
Show the human:
Created project: <title>
Directory: projects/<slug>/
Files:
- README.md — Mission: <summary>
- TASKS.md — <N> initial tasks
- budget.yaml — <resource summary> (if created)
Does this look right? I can adjust anything before committing.
Wait for confirmation. Apply changes if requested.
Follow docs/sops/commit-workflow.md. Commit message: project scaffold: <title>
Add a log entry to projects/akari/README.md:
### YYYY-MM-DD — New project: <title>
Created `projects/<slug>/` via `/project scaffold`. Mission: <one-sentence>.
Sources: projects/<slug>/README.md