agentsclimarketplace

Crisp orchestrator

Skill radekamirko/C.R.I.S.P/.claude/skills/crisp-orchestrator

CRISP — The missing layer between vibe coding and building something people actually want.

Install
npx -y skills add radekamirko/C.R.I.S.P --skill crisp-orchestrator

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

CRISP session manager — detects project state and routes to the right entry point. Use /crisp to start or resume any CRISP engagement. Handles new projects (discovery), existing codebases (archaeology), active sprints (execute), and validation (prove). Reads docs/crisp-state.json to know where you are.

SKILL.md

7.8 KB, as published. Nobody here has run it

CRISP — Session Orchestrator

Before doing anything else, output this exact text verbatim:

C — Clarify · R — Results · I — Investigate S — Spec · P — Prove · E — Execute

    Outcome first. Always.

Step 1: Detect project state

Check if docs/crisp-state.json exists.


If docs/crisp-state.json does NOT exist → Ask what we're starting

Do not assume. Ask:

"Starting fresh — two quick questions:

  1. Do you have an existing codebase, or are we starting from scratch?
  2. What's the project?"

If starting from scratch (no existing code):

  • Copy templates/crisp-state.json to docs/crisp-state.json, set mode: "discovery"
  • Read .claude/skills/phase1-clarify/SKILL.md
  • Begin Phase C with: "Tell me about the project — what are you trying to solve, or what did the client brief say?"
  • Do not explain the methodology. Just ask.

If existing codebase (has code, no docs):

  • Copy templates/crisp-state.json to docs/crisp-state.json, set mode: "archaeology"
  • Inform the user: "Got it — I'll run CRISP Archaeology to reverse-engineer your codebase into docs. This requires the crisp-archaeology skill. Open your codebase project in Claude Code and say: 'run archaeology on [path]'."
  • Do not attempt to run archaeology here — it runs in the target project, not in this repo.

If docs/crisp-state.json EXISTS → Read it and route

Read docs/crisp-state.json. Check mode first, then route.


Mode: "discovery" (standard CRISP phases)

1. Report current status

Project: [project.name] · Client: [project.client]
Mode: Discovery
─────────────────────────────────────────
Phases complete: [phases.complete joined with " · " — or "None"]
Current phase:   [phases.current]
─────────────────────────────────────────

Summarise the current phase state in 2–3 lines:

  • Phase C: "Problem defined as [oneSentence]. Go/No-Go: [goNoGo]. Type: [type]."
  • Phase R: "Baseline: [baseline]. Target: [successTarget]. [N] HITL zones defined."
  • Phase I: "Process track: [processTrack]. User types: [userTypes]. Data mapping: [dataMappingRequired]."
  • Phase S: "[sprintCount] sprints planned. Stack: [stack.layers summary]."
  • Phase P: "Outcome: [outcome]."

If open questions exist in the current phase, list them before asking what to do next.

2. Check if ready for Execute

If phases.S.complete: true and handoffs.ready_for_execute: false:

"Phase S is complete. Ready to start building? Say 'Start Sprint 1' to hand off to CRISP Execute."

If the user confirms → update handoffs.ready_for_execute: true in crisp-state.json.

3. Route

User saysAction
Continue / yes / Phase [X]Load phase SKILL.md and proceed
Start Sprint 1 / execute / buildSet handoffs.ready_for_execute: true. Route to Execute (see Execute routing below).
New projectAsk: overwrite state or new docs/ folder?
Show full statePrint crisp-state.json in readable format
What's leftList incomplete phases and open questions

Mode: "archaeology"

1. Report status

Project: [project.name]
Mode: Archaeology
─────────────────────────────────────────
Recon:       [phases.recon.status]
Strawman:    [phases.strawman.status]
Elicitation: [phases.elicitation.status] ([artifacts.confidence_summary.confirmed] confirmed · [artifacts.confidence_summary.open] open)
Output:      [phases.output.status]
─────────────────────────────────────────

2. Route

If handoffs.archaeology_complete: false:

"Archaeology is in progress. Open the target codebase in Claude Code and continue with the crisp-archaeology skill."

If handoffs.archaeology_complete: true and handoffs.entry_point_after: "phase-s":

"Archaeology is complete. [N] open questions remain (see docs/open-questions.md). Ready to run Phase S to spec the next phase?" Route to Phase S on confirmation.

If handoffs.archaeology_complete: true and handoffs.entry_point_after: "crisp-execute":

"Archaeology is complete. Sprint plan exists. Ready to start building?" Route to Execute on confirmation.


Mode: "execute"

1. Report status

Project: [project.name]
Mode: Execute
─────────────────────────────────────────
Current sprint:   [execute.current_sprint]
Sprints complete: [execute.sprints_complete]
Change requests:  [execute.change_requests.length] queued
─────────────────────────────────────────

Show gate status for the current sprint if available:

  • Product gate: [execute.gates.sprint_N.product]
  • Security gate: [execute.gates.sprint_N.security]

2. Route

User saysAction
Continue / start sprint / buildLoad .claude/skills/crisp-execute/SKILL.md and proceed
New requirement: [X]Route to Execute change request intake
Close sprint [N]Route to Execute sprint close sequence
Show change requestsList execute.change_requests
Go to Phase P / proveCheck all sprints complete, then route to Phase P

Mode: "prove"

Route to .claude/skills/phase5-prove/SKILL.md.


Phase routing table

Phase / ModeSkill to load
C — Clarify.claude/skills/phase1-clarify/SKILL.md
R — Results.claude/skills/phase2-results/SKILL.md
I — Investigate.claude/skills/phase3-investigate/SKILL.md
S — Spec.claude/skills/phase4-spec/SKILL.md
E — Execute.claude/skills/crisp-execute/SKILL.md
P — Prove.claude/skills/phase5-prove/SKILL.md
ArchaeologyRuns in target project via crisp-archaeology skill (separate repo)

crisp-state.json handoff signals

The orchestrator reads and writes these fields to coordinate between modes:

FieldSet byMeaning
modeOrchestrator on createWhich system is active
handoffs.discovery_completePhase S exitAll phases done, ready for execute
handoffs.archaeology_completeArchaeology skillArchaeology finished, ready to proceed
handoffs.ready_for_executeOrchestratorSpec is locked, execute can start
handoffs.execute_completeExecute skillAll sprints done, ready for prove
execute.current_sprintExecute skillWhich sprint is active
execute.gates.sprint_NExecute skillGate results per sprint
execute.change_requestsExecute skillQueued change requests

Rules

  • Never skip a phase without explicit user instruction.
  • If a phase is marked complete but the user wants to re-run it — allow it, flag: "Phase [X] is marked complete. Running again won't reset state automatically."
  • If crisp-state.json has open questions — surface them before starting the next phase.
  • If phases are out of order — flag it: "Phase R isn't marked complete. Running Phase S without it means some pre-fills will be missing. Continue anyway?"
  • If execute.change_requests has queued items when a sprint opens — surface them: "[N] change requests are queued. Review before sprint starts?"
  • Keep responses tight. Status reporting is a tool, not a presentation.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.