plugins/base/skills/create-prompt/SKILL.md
Create a governed prompt with constitutional primitives, epistemic stance, and eval scaffold.
npx skillsauth add rp1-run/rp1 create-promptInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
YOU ARE A PURE ORCHESTRATOR. Spawn the pipeline-runner agent for all prompt creation work. NEVER write prompt content, eval scaffolds, or reports yourself. NEVER apply constitutional, epistemic, or style logic inline. Your only job is to spawn the agent, parse its response, write artifacts to disk, and emit workflow events.
Use the pre-resolved projectRoot, kbRoot, and workRoot values from the generated Workflow Bootstrap section. Do not hardcode .rp1/work/ or .rp1/context/ paths.
Prompt-writer access: the prompt-pipeline-runner agent invokes rp1-base:prompt-writer via the Skill tool to reach its reference and pipeline files. This orchestrator does not need to know prompt-writer's installed path -- the host resolves it by skill name.
Output dir depends on PLUGIN:
| PLUGIN | Output dir | When to use |
|----------|-----------|-------------|
| staging (default) | {projectRoot}/{PROMPT_NAME}/ | You want a staging location for review before moving into a plugin tree. |
| rp1-base | {projectRoot}/plugins/base/skills/{PROMPT_NAME}/ | Emit directly into rp1-base so the build pipeline ingests it. |
| rp1-utils | {projectRoot}/plugins/utils/skills/{PROMPT_NAME}/ | Direct into rp1-utils. |
| rp1-dev | {projectRoot}/plugins/dev/skills/{PROMPT_NAME}/ | Direct into rp1-dev. |
All paths anchor at {projectRoot} so the write path matches the registration path regardless of shell cwd. The orchestrator creates the directory before writing artifacts.
stateDiagram-v2
[*] --> pipeline_start
pipeline_start --> pipeline_complete : agent_done
pipeline_complete --> [*] : done
On each phase transition, report via:
rp1 agent-tools emit \
--workflow create-prompt \
--type status_change \
--run-id {RUN_ID} \
--name "{RUN_NAME}" \
--step {CURRENT_STATE} \
--data '{"status": "running"}'
RUN_ID comes from the generated Workflow Bootstrap sectionRUN_NAME from PROMPT_NAME: "Prompt: {PROMPT_NAME}" (e.g., "Prompt: code-reviewer")State Progression Protocol:
--step with --data '{"status": "running"}' when you enter that state-> [*] transitions): report with --data '{"status": "completed"}' when the step's work finishesExample sequence:
--workflow create-prompt --step pipeline_start --name "Prompt: code-reviewer" --data '{"status": "running"}'
--workflow create-prompt --step pipeline_complete --data '{"status": "running"}'
--workflow create-prompt --step pipeline_complete --data '{"status": "completed"}'
Emit entry into pipeline_start:
rp1 agent-tools emit \
--workflow create-prompt \
--type status_change \
--run-id {RUN_ID} \
--step pipeline_start \
--name "Prompt: {PROMPT_NAME}" \
--data '{"status": "running", "prompt_name": "{PROMPT_NAME}", "agent_type": "{AGENT_TYPE}"}'
Spawn agent -- do NOT create prompt content yourself:
{% dispatch_agent "rp1-base:prompt-pipeline-runner" %} PROMPT_NAME={PROMPT_NAME}, DESCRIPTION={DESCRIPTION}, AGENT_TYPE={AGENT_TYPE}, COMPLEXITY={COMPLEXITY} {% enddispatch_agent %}
The agent executes the six-stage prompt-writer pipeline in fixed order (constitutional-checklist -> fallibilist-overlay -> epistemic-stance -> popper-patterns -> confidence-schema -> prompt-validation) via progressive disclosure. It invokes rp1-base:prompt-writer via the Skill tool at Stage 0 and reads each stage/reference file via the paths in prompt-writer's manifest (pipeline/*.md, references/*.md).
Parse response: The agent returns three artifacts as fenced content blocks:
Validate the response:
Resolve the output directory from PLUGIN:
PLUGIN=staging (default) -> OUT_DIR = {projectRoot}/{PROMPT_NAME}PLUGIN=rp1-base -> OUT_DIR = {projectRoot}/plugins/base/skills/{PROMPT_NAME}PLUGIN=rp1-utils -> OUT_DIR = {projectRoot}/plugins/utils/skills/{PROMPT_NAME}PLUGIN=rp1-dev -> OUT_DIR = {projectRoot}/plugins/dev/skills/{PROMPT_NAME}Resolve REL_DIR as OUT_DIR with the {projectRoot}/ prefix stripped -- this is the value used in the path field of artifact_registered events (with storageRoot: project).
Create the output directory:
mkdir -p {OUT_DIR}
Write the three artifacts to disk at {OUT_DIR}:
{OUT_DIR}/SKILL.md -- Ready-to-run prompt{OUT_DIR}/evals.yaml -- Eval scaffold{OUT_DIR}/confidence-report.md -- Confidence/epistemic reportRegister each artifact:
rp1 agent-tools emit \
--workflow create-prompt \
--type artifact_registered \
--run-id {RUN_ID} \
--step pipeline_start \
--data '{"path": "{REL_DIR}/SKILL.md", "prompt_name": "{PROMPT_NAME}", "storageRoot": "project"}'
rp1 agent-tools emit \
--workflow create-prompt \
--type artifact_registered \
--run-id {RUN_ID} \
--step pipeline_start \
--data '{"path": "{REL_DIR}/evals.yaml", "prompt_name": "{PROMPT_NAME}", "storageRoot": "project"}'
rp1 agent-tools emit \
--workflow create-prompt \
--type artifact_registered \
--run-id {RUN_ID} \
--step pipeline_start \
--data '{"path": "{REL_DIR}/confidence-report.md", "prompt_name": "{PROMPT_NAME}", "storageRoot": "project"}'
Emit pipeline completion:
rp1 agent-tools emit \
--workflow create-prompt \
--type status_change \
--run-id {RUN_ID} \
--step pipeline_complete \
--data '{"status": "completed", "prompt_name": "{PROMPT_NAME}"}'
## Create Prompt Complete
**Prompt**: {PROMPT_NAME}
**Agent Type**: {AGENT_TYPE}
**Complexity**: {effective_complexity from the confidence report's Complexity Classification section} ({"explicit" if COMPLEXITY was simple/standard/complex; "auto-detected" if COMPLEXITY was auto})
**Target**: {PLUGIN} (written to `{REL_DIR}/`)
**Pipeline**: constitutional-checklist -> fallibilist-overlay -> epistemic-stance -> popper-patterns{% if effective_complexity == "simple" %} (skipped){% endif %} -> confidence-schema -> prompt-validation
**Artifacts**:
- `{REL_DIR}/SKILL.md` -- Ready-to-run prompt with constitutional governance and epistemic stance
- `{REL_DIR}/evals.yaml` -- promptfoo eval scaffold with rubric and structural assertions
- `{REL_DIR}/confidence-report.md` -- Per-stage confidence scoring and epistemic decisions
**Next Steps**:
- Review the generated prompt in `{REL_DIR}/SKILL.md`
- Run evals: `promptfoo eval -c {REL_DIR}/evals.yaml`
{% if PLUGIN == "staging" %}- This is a staging location. Move the skill into a `plugins/*/skills/` directory (or rerun with `PLUGIN=rp1-base|rp1-utils|rp1-dev` next time) before the build pipeline can ingest it.{% else %}- The skill is already under `plugins/{PLUGIN}/skills/` and will be picked up on the next build.{% endif %}
MANDATORY -- violations cause eval failure:
DO:
prompt-pipeline-runner for all prompt creation work{OUT_DIR} as resolved from PLUGIN in §STEP-2 (anchored at the project root, not the shell cwd)artifact_registered for each artifact after writing, using the {REL_DIR} path so storageRoot: project registration matches the write pathDO NOT (hard constraints -- never violate these):
tools
Plan and execute splitting a large PR or branch into a reviewable stacked PR sequence.
documentation
Ask about rp1 capabilities, discover skills, and get workflow guidance.
tools
Generate an evidence-grounded markdown walkthrough for a pull request.
development
Run a bounded, evidence-driven two-agent debate into a separate rp1 debate artifact with backend locks only.