بنقرة واحدة
ratchet-sidequest
Manually log discoveries and sidequests during active work
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Manually log discoveries and sidequests during active work
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Run agent pairs through phase-gated debates — guided by epic roadmap and current focus
Analyze project and generate tailored agent pairs through codebase analysis and human interview
Tighten the ratchet — analyze all improvement signals and sharpen the system
View or continue an ongoing debate
Manage guards — list, add, run, and override deterministic checks at phase boundaries
Add a new agent pair to an existing Ratchet configuration
| name | ratchet:sidequest |
| description | Manually log discoveries and sidequests during active work |
Manually log discoveries during active work — mid-debate, mid-phase, mid-milestone. Fills the gap between auto-detected discoveries (watch creates them for CI failures/merge conflicts, tighten creates them for skipped findings) and manual tracking. Lightweight and fast — no debates, no guards, just bookkeeping.
/ratchet:sidequest # Interactive — log a new discovery
.ratchet/ must exist.ratchet/plan.yaml is used if present but NOT required — skill creates a minimal structure if file or epic.discoveries array is missingCheck for .ratchet/plan.yaml:
epic.discoveries array exists. If missing, it will be created when appending.AskUserQuestion with options: "Cancel", "Delete plan.yaml and start fresh".plan.yaml:
epic:
discoveries: []
Inform user: "No plan.yaml found. Created minimal one for discovery tracking."Use AskUserQuestion for each field. Prompts must be plain text (no markdown) since AskUserQuestion renders as terminal selector.
"bug — Something is broken or wrong", "tech-debt — Shortcuts, duplication, or design smell", "feature — New capability or enhancement idea", "security — Vulnerability or hardening opportunity", "performance — Bottleneck or optimization opportunity", "other — Does not fit above categories"Parse selected option to extract category key (word before dash).
"critical — Blocks progress or poses immediate risk", "major — Significant impact, address soon", "minor — Low impact, address when convenient", "info — Just noting for future reference"Parse selected option to extract severity key.
Read pairs from .ratchet/workflow.yaml (if exists). If configured:
"Skip — no specific pair", plus "Multiple — I will list them"If "Multiple" selected, follow-up freeform: "List relevant pair names, comma-separated". If workflow.yaml does not exist or has no pairs, skip and set pairs to empty list.
Attempt auto-detect from plan.yaml:
epic.current_focus if exists — extract milestone and issue refsAskUserQuestion:
"Yes, use detected context", "No, let me specify", "No context — general finding"debates/*/meta.json to find any active debate. If exists, include ID; otherwise null.Generate discovery entry:
- ref: "discovery-manual-<unix-timestamp>"
title: "<short summary of the discovery>"
description: "<user's description>"
category: "<bug|tech-debt|feature|security|performance|other>"
severity: "<critical|major|minor|info>"
source: "manual"
context:
milestone: <detected-or-specified-milestone-id or null>
issue: "<detected-or-specified-issue-ref or null>"
debate: "<active-debate-id or null>"
pairs: [] # populated from step 2d
status: "pending"
issue_ref: null
affected_scope: null
retro_type: null
created_at: "<ISO 8601 timestamp>"
Append to epic.discoveries in .ratchet/plan.yaml using yq:
timestamp=$(date +%s)
created=$(date -Iseconds)
yq eval -i ".epic.discoveries += [{
\"ref\": \"discovery-manual-$timestamp\",
\"title\": \"<short summary>\",
\"description\": \"<description>\",
\"category\": \"<category>\",
\"severity\": \"<severity>\",
\"source\": \"manual\",
\"context\": {
\"milestone\": <milestone or null>,
\"issue\": <issue or null>,
\"debate\": <debate or null>
},
\"pairs\": [<pair-list>],
\"status\": \"pending\",
\"issue_ref\": null,
\"affected_scope\": null,
\"retro_type\": null,
\"created_at\": \"$created\"
}]" .ratchet/plan.yaml
If epic.discoveries does not exist yet, yq will create it. Ensure array initialized first if needed:
yq eval -i '.epic.discoveries //= []' .ratchet/plan.yaml
Display summary:
Discovery logged: discovery-manual-<timestamp>
Category: <category> | Severity: <severity>
Context: milestone <id>, issue <ref> (or "no specific context")
Pairs: <pair-list> (or "none")
Status: pending
This discovery will appear in /ratchet:status and be available as a sidequest in /ratchet:run.
Then AskUserQuestion:
"Log another discovery", "View status (/ratchet:status)", "Done"If "Log another discovery" selected, return to Step 2.
yq eval '.' .ratchet/plan.yaml. If invalid, inform user and offer to restore from pre-edit state.Discoveries enter standard Ratchet discovery pipeline:
status: "pending" and source: "manual"/ratchet:status in Sidequests section (only pending shown)/ratchet:run as Mode B sidequest work items/ratchet:run pipeline (sets status: "done" after resolved)status: "promoted" and issue_ref)status: "dismissed")Valid status values: pending | done | promoted | dismissed
/ratchet:status — View pending discoveries/ratchet:run — Process discoveries as sidequest work items/ratchet:watch — Auto-detects discoveries from CI failures and merge conflicts/ratchet:tighten — Creates discoveries from retrospective analysis and PR feedback