agentleFS
sd0xdevsd0xdev/sd0x-harness/skills/feasibility-study/SKILL.md

feasibility-study

Skill192 starsChanged 37 days agoMITView on GitHub

Feasibility analysis from first principles. Use when: evaluating solutions before tech-spec, comparing approaches, risk assessment. Not for: implementation (use feature-dev), architecture advice (use codex-architect). Output: quantitative comparison + recommendation.

3 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If a requirements doc resolves from design_records → consume as the authoritative statement of what was asked for, validate via 5-Why.

    line 62
  2. Distinctive:

    Use "5 Why" to uncover essence:

    line 89

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Feasibility Study Skill

Supplementary Agent

For each solution option, dispatch background exploration:

Agent({ description: "Explore feasibility of solution option", subagent_type: "feasibility-analyst", prompt: Research the feasibility of: <solution description> Evaluate technical feasibility, effort, risk, extensibility, and maintenance cost. })

Trigger

  • Keywords: feasibility, is this possible, can we, should we, explore options, before tech spec

When NOT to Use

  • Already have a tech spec (use /deep-analyze)
  • Need implementation, not analysis (use /codex-implement)
  • Quick question (use /codex-explain or /codex-architect)

Workflow

Resolve → Decompose → Constraints → Code research → Solutions → Codex discussion → Decision → Report

Phase 0: Resolve the feature context

The sets Phase 1 reads have to come from somewhere, and this skill is invoked directly (/feasibility-study <topic>) as often as it is invoked from another skill — so it resolves them itself rather than assuming a caller supplied them:

# The node entrypoint. The shell wrapper's own header tells skills to prefer this one once they hold
# `Bash(node:*)` — and this skill now does, for its transport dispatches. The wrapper was named here
# only while that grant was absent; keeping it afterwards would have instructed a second-choice
# entrypoint for a reason that had stopped being true.
node scripts/resolve-feature.js [--feature <key>]

The reply is one JSON document. What this skill reads out of it: scan_error first — the gate below decides whether anything else in the payload means what it says — then current_authority (what the system does today) and the design_records entries — design records carry the rationale; it is the type: requirements subset of them that states what was asked for, which is why Phase 1 filters before it selects. Each entry is { file, type, namespace, confidence, is_canonical, role }, file relative to docs_path. An empty or non-JSON reply is a failure too — node may be unavailable, which the shim cannot report as a payload. Treat it exactly as scan_error !== false below.

Phase 1: Requirement Decomposition

Input source priority:

  1. If a requirements doc resolves from design_records → consume as the authoritative statement of what was asked for, validate via 5-Why. It is a design record, not a description of current behaviour: for "what does the system do today", read code, rules/ and current_authority
  2. Otherwise → extract requirements from user input via 5-Why analysis

design_records is an array, so "a requirements doc" needs a rule rather than an assumption — a split or variant-backed phase contributes more than one. Filter to type: requirements first, then:

#Candidates (design_records where type: requirements)Result
1nonePath 2 — extract from user input. A feature with no requirements doc is a normal state, not an exit
2exactly onethat one
3two or more, exactly one with is_canonical: truethat one
4two or more, and none or several canonicalGate: Need Human, naming the candidates

Rows 1 and 4 are different answers: "there is none" is acted on, "there are two" must not be resolved by picking. The same order /architecture applies to its tech-spec candidates.

scan_error gate. Gate on scan_error !== false, not on scan_error === true. When it is not exactly false the four source sets are unknown, not empty — the corpus could not be enumerated (unreadable directory, broken taxonomy, no repository), or the resolver never ran and a shell fallback supplied a payload with no such field at all. {} is the shape that made the stricter test useless: it has no scan_error, so === true is false and the gate passes a payload that contains nothing. Do not proceed as though the feature has no authority documents — report and take the ⚠️ Need Human exit. A key may still be present, so a non-null key is not evidence the sets are complete.

Use "5 Why" to uncover essence:

  1. Surface requirement (what user asks for)
  2. Underlying problem (why they need it)
  3. Success criteria (quantifiable acceptance)

Phase 2: Constraint Analysis

Inventory constraints by type (Technical, Business, Resource, Compatibility) with flexibility rating.

Phase 3: Code Research

Research existing codebase:

  • Related modules and reusable logic
  • Existing design patterns
  • Tech debt to work around

Phase 4: Solution Exploration

Brainstorm 2-3+ solutions, each with:

  1. Core idea (one sentence)
  2. Implementation path
  3. Quantified feasibility (see references/analysis-phases.md)
  4. Cost and trade-offs

Phase 5: In-Depth Codex Discussion

⚠️ Core step — not optional (unless --no-codex) ⚠️

See references/codex-discussion-guide.md for full rules and examples.

ToolPurposeWhen
/codex-brainstormEnumerate all optionsAt start
/codex-architectEvaluate designAfter proposal forms
@skills/codex-code-review/references/codex-transport.md § ResumeAsk detailsAnytime

Phase 6: Comparative Decision

Side-by-side comparison → recommendation + backup + open questions.

Evaluation Dimensions

DimensionGreenYellowRed
Technical FeasibilityHas existing patternsNeeds adaptationMajor innovation
Effort< 3 person-days3-10 person-days> 10 person-days
RiskSmall scopeSome uncertaintyMany unknowns
ExtensibilityEasy to extendNeeds refactoringHard to extend
Maintenance CostClean, easySome complexityComplex

Output

## Feasibility Study: <title>
### Quantitative Comparison
| Criterion | Option A | Option B | Option C |
|-----------|----------|----------|----------|

### Recommendation
<selected option with rationale>

Verification

  • 5 Why decomposition completed
  • Constraints inventoried with flexibility
  • Existing code researched (grep/read)
  • 2-3+ solutions explored with quantified assessment
  • Codex discussion documented (unless --no-codex)
  • Comparison table + recommendation + open questions

References

  • Analysis phases: references/analysis-phases.md
  • Codex discussion: references/codex-discussion-guide.md
  • Output template: references/output-template.md

Relationship with Other Commands

/feasibility-study → /tech-spec → /deep-analyze → /codex-implement

Examples

Input: /feasibility-study "Add user quota management"
Action: 5 Why → constraints → code research → 3 solutions → Codex discussion → recommendation

Input: /feasibility-study "Optimize cache" --context src/service/cache.ts
Action: Read cache code → constraints → solutions → Codex brainstorm → comparison → report

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.