Best for
- Reverse-think prerequisites from the goal
- Assess information completeness for each prerequisite
- Either BLOCK planning until missing inputs are obtained, or APPROVE with explicit assumptions
Jamie-BitFlight/claude_skills/plugins/development-harness/skills/rt-ica/SKILL.md
Use before creating plans, delegating to agents, or defining acceptance criteria — performs Reverse Thinking Information Completeness Assessment (RT-ICA) to surface missing prerequisites and block planning until all required inputs are verified. Activates on specs, PRDs, tickets, RFCs, architecture designs, and multi-step engineering tasks. Integrates with CoVe-style planning pipelines.
Decision brief
Use before creating plans, delegating to agents, or defining acceptance criteria — performs Reverse Thinking Information Completeness Assessment (RT-ICA) to surface missing prerequisites and block planning until all required inputs are verified. Activates on specs, PRDs, tickets, RFCs, architecture designs, and multi-step engineering tasks.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/Jamie-BitFlight/claude_skills --skill "plugins/development-harness/skills/rt-ica"Inspect the Agent Skill "rt-ica" from https://github.com/Jamie-BitFlight/claude_skills/blob/a00194f25fec502d3d659b7d610369614967251e/plugins/development-harness/skills/rt-ica/SKILL.md at commit a00194f25fec502d3d659b7d610369614967251e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Exploration for RT-ICA often surfaces issues beyond the current scoped task. These do not automatically block the current work, but they must be reported back to the orchestrator or supervisor agent so they can be tracked, reviewed, and converted into follow-up tasks or backlog…
Apply this procedure to each goal and sub-goal:
Goal statement: One sentence describing the desired outcome
Work backwards from the goal to list ALL conditions required for success.
For each condition, classify evidence first, then action disposition.
Permission review
The documentation asks the agent to run terminal commands or scripts.
uv run "${CLAUDE_PLUGIN_ROOT}/sam_schema/cli.py" backlog view --selector "#N"The documentation asks the agent to run terminal commands or scripts.
uv run "${CLAUDE_PLUGIN_ROOT}/sam_schema/cli.py" backlog groom --selector "#N" --section "RT-ICA" --content "{RT-ICA SUMMARY block}"Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 96/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 64 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
| If you are… | Load |
|---|---|
| At the S2 implementation gate where missing inputs must halt the pipeline | dh:rt-ica (this skill — blocking) |
| Grooming a backlog item, generating a plan, decomposing tasks under uncertainty | dh:planner-rt-ica (the non-blocking sister skill) |
dh:rt-ica and dh:planner-rt-ica are deliberately split: same framework, different cost-of-being-wrong. At the implementation gate, a MISSING condition is a halt event because the agent would otherwise guess. During planning or grooming, the same MISSING is a research task or a question for the human. Do not consolidate.
RT-ICA surfaces what the executor needs to know before it can act without stopping.
For every goal (top-level and each decomposed sub-goal), the model should:
<core_rule>
RT-ICA should be performed before planning, delegation, or solution design on:
If any required condition is MISSING, stop and request only the missing information.
</core_rule>
Task complexity is not implementation difficulty — it is the ratio of project-specific knowledge required to context window available.
Training data provides craft knowledge (language patterns, framework APIs, tooling). That is free. What consumes context budget is everything specific to this project: schemas, conventions, constraints, interfaces, user preferences, existing system behavior. That knowledge must be loaded before the agent can act.
This changes how RT-ICA results inform task design:
flowchart TD
RTICA["RT-ICA conditions enumerated"] --> Measure["Estimate knowledge payload:<br>how much project-specific context<br>must be loaded to satisfy conditions?"]
Measure --> Ratio{Knowledge payload<br>vs context window?}
Ratio -->|"< 40% of window<br>Room to work"| Proceed["Single task — execute directly"]
Ratio -->|"40-70% of window<br>Tight but workable"| Combine["Look for steps sharing<br>the same knowledge payload —<br>combine them into one task"]
Combine --> Proceed
Ratio -->|"> 70% of window<br>No room to implement"| Decompose["Decompose into subtasks<br>that each need a smaller<br>subset of the knowledge"]
Step combining: When two steps need the same project knowledge loaded, combining them is nearly free — the knowledge is loaded once, both steps execute in the remaining space. Splitting them wastes context by loading the same knowledge twice. Step boundaries belong where information gaps exist, not where implementation boundaries happen to fall.
Dynamic vs static constraints: RT-ICA produces dynamic constraints — discovered fresh from the current goal, disposable after use. These provide visibility into edges that would cause problems if crossed blindly: scope creep, missing user opinions, abstract requirements that need to become definite. RT-ICA's value is turning the abstract into the definite for each specific task.
When invoked with a #N argument (e.g., Skill(skill='dh:rt-ica', args='#42')):
uv run "${CLAUDE_PLUGIN_ROOT}/sam_schema/cli.py" backlog view --selector "#N"
Note: the CLI's backlog view has no summary toggle — it always returns the flatter,
full-content equivalent of summary=false.
title, description, sections['Acceptance Criteria'],
sections['Expected Behavior'], sections['Impact Radius'], and any other populated sections.uv run "${CLAUDE_PLUGIN_ROOT}/sam_schema/cli.py" backlog groom --selector "#N" --section "RT-ICA" --content "{RT-ICA SUMMARY block}"
Without a #N arg, the skill expects the goal/input to be provided inline in the invocation
context. Invoking without args and without inline context returns BLOCKED — always pass #N
when invoking from a workflow step that has an item reference.
<activation_triggers>
Invoke RT-ICA when receiving ANY of:
Integration Points (where RT-ICA checkpoints MUST occur):
</activation_triggers>
| Term | Definition |
|---|---|
| Goal | A desired outcome the user wants |
| Condition | A prerequisite that must be true to achieve the goal |
| Required Information | Concrete data needed to confirm or satisfy a condition |
| AVAILABLE | Explicitly present in provided material or loaded project evidence. Must cite exact source. |
| EVIDENCE-DERIVED | Not stated verbatim, but forced by cited evidence. Must state inference, basis, and contradiction check. Not allowed for taste, policy, product meaning, security, external effects, or user preference. |
| SAFE-DEFAULTED | Not known as fact, but a local default was chosen because every Safe Default Gate criterion passed. Must record chosen default, scope, reversibility, and verification. |
| MISSING | Required information is not available, not evidence-derived, and not safe-defaultable. |
| HARD-BLOCKED | Missing input involves irreversible or destructive action, external side effects, credentials, production data, compliance or security policy, or meaning-affecting user or product choice. |
Safe-defaulting is permission to choose a low-risk local implementation detail, not permission to invent a requirement. If the missing detail affects meaning, policy, external behavior, data, security, or user intent, it is not safe-defaultable.
A missing detail may be SAFE-DEFAULTED only when all of the following are true:
If any item is false, unknown, or subjective, do not safe-default. Mark the condition MISSING or HARD-BLOCKED.
If ambiguity would increase the risk profile of the task, do not let the agent silently choose a path. Convert the ambiguity into a research item, clarification question, or hard block, then present the findings and open decisions back to the human in a compact, decision-ready form.
Use the following rules:
Default routing for these ambiguity classes:
HARD-BLOCKED for security, privacy, destructive external effects, irreversible data risk, compliance, missing rollback, or unclear authority over consequential actions.REQUIRES-USER when the ambiguity is about intent, policy, scope, ownership, user-visible behavior, or risk acceptance.REQUIRES-DISCOVERY when repository, runtime, test, or architecture evidence could resolve the ambiguity safely before action.These are provisional routes, not permanent labels. After discovery:
AVAILABLE or EVIDENCE-DERIVED and proceed without asking the human.SAFE-DEFAULTED and proceed without asking the human.Respect the human's attention:
REQUIRES-USER paths must be batched into a single clarification packet for the current goal or sub-goal.Exploration for RT-ICA often surfaces issues beyond the current scoped task. These do not automatically block the current work, but they must be reported back to the orchestrator or supervisor agent so they can be tracked, reviewed, and converted into follow-up tasks or backlog items when appropriate.
Create a review report for findings such as:
For each report-back item, record:
When such findings exist, emit them in a literal <concerns>...</concerns> block so the orchestrator or supervisor can append them into backlog ## Concerns using the plugin's existing concern-ingestion flow. Do not bury these findings only inside prose.
Apply this procedure to each goal and sub-goal:
The final RT-ICA artifact should function like a compact PRD for the scoped work. It should leave downstream planners and executors with explicit goals, constraints, evidence, open questions, resolved decisions, risks, validation expectations, and review-worthy findings without requiring reconstruction from chat history.
Produce:
Work backwards from the goal to list ALL conditions required for success.
Question discovery is recursive:
<condition_categories>
Include conditions in these categories (where applicable):
| Category | Example Conditions |
|---|---|
| Functional requirements | Features, behaviors, user flows |
| Non-functional requirements | Latency, throughput, availability, compliance, security |
| Interfaces/Integration | APIs, schemas, dependencies, external systems |
| Environment/Runtime | Cloud, region, OS, language, build system |
| Data requirements | Sources, quality, migration, retention |
| Access/Permissions | Repos, secrets, credentials, IAM |
| Operational constraints | SLOs, oncall, monitoring, incident response |
| Delivery constraints | Timeline, release process, approvals |
| Verification needs | Tests, canaries, acceptance criteria, observability |
| Risks/Failure modes | Rollback, data loss, security exposure |
| Replacement coverage | Full capability inventory of module being replaced, coverage matrix against replacement tool |
| Data Deletion Fidelity | When goal text signals source data will be deleted (keywords: "delete", "remove", "drop", "migrate from X", "replace X with Y", "convert format", "remove source after migration"): acceptance criteria must include a content completeness check against real production data AND an explicit deletion gate. If absent: classify as MISSING. |
</condition_categories>
For each condition, specify:
For each condition, classify evidence first, then action disposition.
Evidence status:
| Status | Required proof |
|---|---|
| AVAILABLE | Cite exact source snippet or section name |
| EVIDENCE-DERIVED | Cite source, inference, basis, and contradiction check |
| UNRESOLVED | State what source is absent or ambiguous |
If evidence status is UNRESOLVED, classify disposition:
| Disposition | Use when |
|---|---|
| SAFE-DEFAULTABLE | Every Safe Default Gate criterion passes |
| REQUIRES-DISCOVERY | Repo, runtime, test, or document inspection can resolve the gap |
| REQUIRES-USER | The missing detail affects product meaning, policy, security, external systems, approvals, or user-visible behavior |
| HARD-BLOCK | The gap is destructive, irreversible, external-side-effecting, production-data-affecting, credential-related, compliance-related, or not recoverable |
Final condition label:
AVAILABLEEVIDENCE-DERIVEDSAFE-DEFAULTEDMISSINGHARD-BLOCKEDIF any condition is HARD-BLOCKED:
DECISION = BLOCKED
ELSE IF any condition is MISSING or REQUIRES-USER:
DECISION = BLOCKED
ELSE IF any condition is REQUIRES-DISCOVERY:
DECISION = BLOCKED unless the task is explicitly a discovery task
ELSE:
DECISION = APPROVED
SAFE-DEFAULTABLE does not mean "fact known." It means the agent may choose a local default and must record that choice explicitly as SAFE-DEFAULTED.
<decision_actions>
IF BLOCKED:
HARD-BLOCKED and destructive, data-loss, or external-side-effect conditions are never waivable<concerns> block## ConcernsIF APPROVED:
EVIDENCE-DERIVED items as "assumptions to confirm"SAFE-DEFAULTED items as "autonomous decisions" with rationale and validation method</decision_actions>
<output_format>
The model MUST produce this summary block for each goal/sub-goal:
RT-ICA SUMMARY
Goal:
- [one sentence]
Success Output:
- [deliverable/observable result]
Conditions (reverse prerequisites):
1. [Condition] | Requires: [info] | Why: [1 line]
2. [Condition] | Requires: [info] | Why: [1 line]
...
Verification:
- [Condition 1]: Evidence=[AVAILABLE|EVIDENCE-DERIVED|UNRESOLVED] | Disposition=[N/A|SAFE-DEFAULTABLE|REQUIRES-DISCOVERY|REQUIRES-USER|HARD-BLOCK] | Basis: [citation/inference/check]
- [Condition 2]: Evidence=[AVAILABLE|EVIDENCE-DERIVED|UNRESOLVED] | Disposition=[N/A|SAFE-DEFAULTABLE|REQUIRES-DISCOVERY|REQUIRES-USER|HARD-BLOCK] | Basis: [citation/inference/check]
...
Decision:
- [APPROVED|BLOCKED]
--- IF BLOCKED ---
Missing Inputs Requested:
[Category]:
- Question: [missing item question]
- Why it matters: [impact to goal]
- Known constraints: [repo, runtime, policy, or user constraints already discovered]
- Options under current constraints: [option A / option B / option C]
- Risk if wrong: [side effect or failure mode]
[Category]:
- Question: [missing item question]
- Why it matters: [impact to goal]
- Known constraints: [repo, runtime, policy, or user constraints already discovered]
- Options under current constraints: [option A / option B / option C]
- Risk if wrong: [side effect or failure mode]
--- IF APPROVED ---
Assumptions to Confirm (EVIDENCE-DERIVED only):
- [assumption] | Basis: [basis] | Validation step: [how to confirm early]
Safe Defaults Applied (SAFE-DEFAULTED only):
- [choice made] | Why allowed: [checks passed] | Validation step: [how risk is surfaced before external impact]
<concerns>
[Issue category]
Observation: [what was found]
Why it matters: [impact]
Blocks current work: [yes/no]
Recommended owner/destination: [owner, supervisor, backlog, or task stream]
Recommended follow-up: [task/backlog/escalation]
</concerns>
</output_format>
<cove_integration>
Recommended sequence with RT-ICA:
A) RT-ICA on top-level goal
B) Draft plan and decomposition
C) RT-ICA on each major workstream/sub-goal
D) Assign agents with clearly bounded deliverables
E) Verification pass: cross-check plan against conditions and acceptance criteria
F) Refinement pass: resolve gaps, reduce risk, ensure ordering and guardrails
</cove_integration>
<planning_deliverables>
After RT-ICA APPROVED decision, produce a plan that includes:
| Section | Contents |
|---|---|
| Workstreams | Logical groupings and ordering |
| Agent Assignment | Which agent handles each workstream |
| Guardrails | Safety, security, correctness, operational constraints |
| Acceptance Criteria | Testable, measurable success conditions |
| Risk Register | Top risks, mitigations, rollback strategy |
| Dependencies | Internal and external dependencies |
| Verification Plan | Tests, monitoring, canary, QA |
| Change Management | Rollout, communications, documentation |
</planning_deliverables>
RT-ICA exists to prevent hallucinated constraints. Without it, models fill knowledge gaps with training data patterns — inventing requirements and presenting them as facts. These guardrails protect that function.
Redirection rule:
When you notice yourself generating a value, constraint, or requirement that you cannot source from the input material — that impulse is a discovery, not a mistake. It reveals either a gap that needs resolution or a candidate safe default. Redirect it:
AVAILABLE, EVIDENCE-DERIVED, or UNRESOLVEDUNRESOLVED, check whether the proposed choice satisfies every Safe Default Gate criterionSAFE-DEFAULTABLE and carry the chosen default as SAFE-DEFAULTEDREQUIRES-DISCOVERY, REQUIRES-USER, or HARD-BLOCKMISSING or HARD-BLOCKEDSpeculation is the signal that refinement is needed. The goal is not to suppress gap-filling — it is to catch it happening and route it into the unknowns list instead of into the plan as fact.
Reflection checkpoint: Before writing each condition's status, pause and answer in writing: "Is this explicit, evidence-derived, unresolved but safe-defaultable, unresolved and requiring discovery, unresolved and requiring the user, or a hard block?" If a dedicated reasoning tool exists, use it. If not, still record the written reflection explicitly in the assessment.
Never present unsourced content as verified. Plan with MISSING conditions only when the user explicitly requests assumption-based planning.
Best practice:
EVIDENCE-DERIVED itemsData Deletion Fidelity is never waivable:
When any condition in the "Data Deletion Fidelity" category is MISSING, the decision is BLOCKED. This condition is not eligible for assumption-based planning (the exception clause in Step 5 does not apply). Deletion of source data without a fidelity gate is not a recoverable assumption — it is an irreversible data loss risk.
<question_templates>
When requesting missing inputs, use structured questions:
Environment/Infrastructure:
Success Criteria:
Integration:
Technical Constraints:
Approvals:
</question_templates>
User Request: "Build a user authentication service"
RT-ICA Summary:
RT-ICA SUMMARY
Goal:
- Implement user authentication service for the application
Success Output:
- Deployed service that authenticates users and issues session tokens
Conditions (reverse prerequisites):
1. Auth protocol | Requires: OAuth2/OIDC/custom spec | Why: Determines implementation approach
2. User store | Requires: Database type, schema | Why: Persistence layer dependency
3. Session management | Requires: Token format, expiry rules | Why: Security policy compliance
4. Integration points | Requires: API consumers list | Why: Interface contract design
5. Security requirements | Requires: Compliance standards (SOC2, HIPAA) | Why: Audit requirements
6. Deployment target | Requires: Cloud/region/infra | Why: Runtime configuration
Verification:
- Auth protocol: Evidence=UNRESOLVED | Disposition=REQUIRES-USER | Basis: Protocol choice is not specified and affects product behavior
- User store: Evidence=EVIDENCE-DERIVED | Disposition=N/A | Basis: docker-compose.yml shows PostgreSQL; no conflicting store definition found
- Session management: Evidence=UNRESOLVED | Disposition=REQUIRES-USER | Basis: Token format and expiry policy are not specified and affect security posture
- Integration points: Evidence=UNRESOLVED | Disposition=REQUIRES-DISCOVERY | Basis: Calling services may be discoverable from repo interfaces, but are not explicit in the request
- Security requirements: Evidence=UNRESOLVED | Disposition=REQUIRES-USER | Basis: Compliance obligations are not derivable from the request and affect policy and controls
- Deployment target: Evidence=AVAILABLE | Disposition=N/A | Basis: README specifies AWS us-east-1
Decision:
- BLOCKED
Missing Inputs Requested:
Authentication Design:
- Which auth protocol: OAuth2, OIDC, or custom JWT? (determines implementation)
- Session token expiry policy? (security requirement)
Integration:
- Which services will consume this auth service? (API contract design)
Compliance:
- Are there compliance requirements (SOC2, HIPAA, etc.)? (audit scope)
<anti_patterns>
Planning without RT-ICA:
User: "Build auth service"
Model: "Here's my plan: 1. Create user table, 2. Add login endpoint..."
Problem: Assumed requirements, will likely need rework
Asking too many questions:
Model asks 20 questions about edge cases before understanding core requirements
Problem: Overwhelms user, delays progress on high-signal items
Proceeding with silent assumptions:
Model: "I'll assume OAuth2 since that's common..."
Problem: Assumption may be wrong, causes rework or security issues
</anti_patterns>
agent-orchestration - Scientific delegation framework for orchestrator-to-agent workflowssubagent-contract - DONE/BLOCKED signaling protocol for sub-agents| Source | Attribution | Access Date |
|---|---|---|
| RT-ICA Framework | Liu et al., 2025 - Reverse Thinking Enhances Missing Information Detection in LLMs | 2026-01-20 |
| CoVe (Chain of Verification) | Dhuliawala et al., 2023 - Chain-of-Verification Reduces Hallucination | 2026-01-20 |
Frequently asked questions
Use before creating plans, delegating to agents, or defining acceptance criteria — performs Reverse Thinking Information Completeness Assessment (RT-ICA) to surface missing prerequisites and block planning until all required inputs are verified. Activates on specs, PRDs, tickets, RFCs, architecture designs, and multi-step engineering tasks.
The source record exposes this install command: npx skills add https://github.com/Jamie-BitFlight/claude_skills --skill "plugins/development-harness/skills/rt-ica". Inspect the command and pinned source before running it.
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
equinor/neqsim
Engineering deliverable quality — the nine analytical-depth moves (contributor ranking, adjudicating the source document, quantitative rule-outs, robustness crossover, conservatism direction, discriminating test), results.json schema, figure→discussion→linked_results traceability, evidence matrices, assumptions/gaps registers, citation conventions, KaTeX math formatting, units consistency, executive-summary structure, AACE class declaration. USE WHEN: producing a task report, a PEPR/M1/root-caus
JasonColapietro/suede-creator-skills
Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).