agentleFS
fattain-naimefattain-naime/engineering-docs/skills/technical-feasibility-study/SKILL.md

technical-feasibility-study

Skill6 starsChanged 18 days agoMITView on GitHub

Assess whether a proposed technical solution is viable given the current stack, team, timeline, and constraints. Produces a go/no-go recommendation with evidence. Use before committing engineering resources to design or implementation.

The file

Show its rules and text

We split this skill into the rules it gives an agent

20 rules. About 0 are common, 17 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈17

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do we have - or can we acquire - the engineering skills, infrastructure, and budget required?

    line 42
  2. Distinctive:

    Not a design document. Do not specify implementation details here.

    line 56
  3. Distinctive:

    Not a business case. Business ROI is a separate concern.

    line 57
  4. Distinctive:

    Not a decision made by one person.

    line 58
  5. Distinctive:

    When comparing technologies or approaches, apply a structured benchmarking methodology:

    line 61
  6. Distinctive:

    Control variables: Ensure comparisons are fair — same hardware, same dataset, same load pattern

    line 63
  7. Distinctive:

    When a technology is unfamiliar or the risk is high, require a time-boxed PoC before committing.

    line 69
  8. Distinctive:

    Decision: If the PoC passes, proceed.

    line 75
  9. Distinctive:

    When weighing multiple feasibility dimensions, use a weighted decision matrix:

    line 78
  10. Distinctive:

    Seek disconfirming evidence first: Before looking for reasons it will work, look for reasons it won't

    line 89
  11. Distinctive:

    When your analysis conflicts with the user's stated preference:

    line 96
  12. Distinctive:

    If the document is significantly shorter than the target, check for:

    line 114
  13. Very specific:

    Interview Mechanism: Use tool calls (e.g., AskUserQuestion) to present questions — do NOT ask inline in the conversation.

    line 123
  14. Very specific:

    Context Loading: Before asking ANY questions, read ALL prior documents in .engineering-docs/ to extract already-known information.

    line 125
  15. Distinctive:

    Maximum 2-3 questions per skill: Only ask about:

    line 134
  16. Distinctive:

    Ask questions to resolve:

    line 139
  17. Distinctive:

    If the user requests changes after reviewing the document:

    line 162
  18. Distinctive:

    Jumping to a recommendation without evidence: Every Go/No-Go verdict must cite specific findings from the assessment sections.

    line 173
  19. Very specific:

    Before marking this document as final, verify:

    line 191
  20. Distinctive:

    After this document is complete, proceed to:

    line 200

≈ “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

Purpose

Prevent the most expensive engineering failure mode: committing significant resources to a direction that was never viable. A technical feasibility study is not a design document - it does not specify how to build something. It answers the prior question: should we build it this way at all?

Input

Works best with: A description of the proposed concept, approach, or technology being evaluated. Also valuable: Timeline constraints, team skills inventory, existing tech stack, budget limits, regulatory environment.

Example invocation: Assess the feasibility of building a real-time fraud detection engine using stream processing for our payment gateway, given our team of 3 PHP engineers and a 4-month delivery window.

Key Concepts

Four Feasibility Dimensions

1. Technical Feasibility Can this be built with available or acquirable technology? Does the proposed solution have proven precedent at similar scale? Are there known technical blockers?

2. Resource Feasibility Do we have - or can we acquire - the engineering skills, infrastructure, and budget required? What is the realistic timeline given current team capacity?

3. Operational Feasibility Once built, can we operate, monitor, and maintain this system? Does it integrate with existing monitoring, deployment, and support processes?

4. Risk Feasibility What are the critical failure modes? What is the fallback if this approach does not work? What is the blast radius of a failed implementation?

Recommendation Levels

  • Go: Proceed with design and implementation. Evidence strongly supports viability.
  • Conditional Go: Proceed only if stated conditions are met (e.g., hire specialist, resolve dependency X first).
  • No Go: The approach is not viable under current constraints. Evidence-backed alternative recommended.

What This Is NOT

  • Not a design document. Do not specify implementation details here.
  • Not a business case. Business ROI is a separate concern; focus only on technical viability.
  • Not a decision made by one person. The output should be reviewed by all stakeholders before committing.

Benchmarking Methodology

When comparing technologies or approaches, apply a structured benchmarking methodology:

  1. Define comparable criteria: What specific, measurable attributes are being compared? (throughput, latency, developer ergonomics, ecosystem maturity, operational cost)
  2. Control variables: Ensure comparisons are fair — same hardware, same dataset, same load pattern
  3. Use real workloads: Synthetic benchmarks are a starting point, but the evaluation must include workloads representative of actual production use
  4. Document methodology: Record exact test setup, versions, configurations, and data so results are reproducible
  5. Quantify uncertainty: Report confidence intervals, not just point estimates — a benchmark showing "10ms average" is meaningless without p95/p99

PoC Specification Template

When a technology is unfamiliar or the risk is high, require a time-boxed PoC before committing. Specify:

  • Objective: What specific question does this PoC answer? (e.g., "Can the library handle 10K concurrent connections on our hardware?")
  • Scope: What is explicitly in scope and out of scope?
  • Time-box: Maximum time allocated (typically 1-2 weeks)
  • Success criteria: Pass/fail conditions defined BEFORE the PoC starts — not retroactively adjusted
  • Output: What artifact proves the result? (benchmark numbers, working prototype, integration demo)
  • Decision: If the PoC passes, proceed. If it fails, trigger the fallback path.

Decision Matrix

When weighing multiple feasibility dimensions, use a weighted decision matrix:

  1. List the dimensions being evaluated (technical, resource, operational, risk)
  2. Assign weights based on project priorities (e.g., risk = 40%, technical = 30%, resource = 20%, operational = 10%)
  3. Score each dimension on a 1-5 scale with evidence
  4. Calculate weighted scores and present the total alongside the qualitative recommendation

The matrix does not replace judgment — it makes the reasoning transparent. If the matrix says "Go" but the assessor's gut says "No Go," investigate the discrepancy rather than overriding.

Confirmation Bias Handling

Feasibility studies are particularly vulnerable to confirmation bias — the tendency to seek evidence that supports a desired outcome. Mitigate this by:

  • Assign a devil's advocate: Explicitly task someone with arguing against the proposed approach
  • Seek disconfirming evidence first: Before looking for reasons it will work, look for reasons it won't
  • Use pre-mortem analysis: Imagine the project has failed — what went wrong? This surfaces risks that optimistic analysis misses
  • Separate the evaluator from the advocate: The person who proposed the approach should not be the sole evaluator of its feasibility
  • Document what you don't know: Unknowns are more dangerous than known risks — explicitly list them

Conflict Resolution

When your analysis conflicts with the user's stated preference:

  1. Present both positions — show your analysis and their preference side by side
  2. Explain the trade-off — what are the consequences of each choice?
  3. Recommend with reasoning — state your recommendation and why
  4. Respect the user's decision — they own the final call
  5. Document the decision — record it as an [owner-specified] override with reasoning

Document Length

Target length: 5-10 pages (excluding appendices).

Shorter is better than longer. If the document exceeds the target, check for:

  • Redundant content that can be cut
  • Overly verbose explanations
  • Content that belongs in a separate reference document
  • Material the agent already knows (don't explain what HTTP is)

If the document is significantly shorter than the target, check for:

  • Missing sections
  • Insufficient detail in critical areas
  • Unaddressed edge cases

Application

Phase 1: Socratic Clarification & Brainstorming (Mandatory Interview)

Interview Mechanism: Use tool calls (e.g., AskUserQuestion) to present questions — do NOT ask inline in the conversation. The user selects from options rather than typing responses. One question per tool call, multiple-choice options preferred, with "I don't know, you decide" as an escape hatch.

Context Loading: Before asking ANY questions, read ALL prior documents in .engineering-docs/ to extract already-known information. Look for:

  • Team size, budget, timeline (from business-plan)
  • Tech stack, hosting (from system-architecture)
  • Target users, JTBD (from user-personas)
  • Constraints, regulatory requirements (from business-plan)
  • Scope, features (from technical-specification)

If information exists in a prior document, USE IT — do not re-ask.

Maximum 2-3 questions per skill. Only ask about:

  • Skill-specific details not covered in prior documents
  • Technical decisions that affect this specific document
  • Clarifications on ambiguous requirements

Ask questions to resolve:

  1. Core technical doubts: What is the most risky or uncertain part of this proposal?
  2. Alternative approaches: Are there any other alternative routes you have briefly considered?

Wait for the user's response to these questions before drafting the final feasibility study.

Phase 2: Define the Proposition (40-60 min)

State clearly what is being evaluated and what success looks like.

Phase 3: Technical Assessment (90 min)

Evaluate the technology, architecture, and integration complexity.

Phase 4: Resource and Timeline Assessment (60 min)

Map required skills, team availability, infrastructure, and realistic timeline.

Phase 5: Risk Analysis (60 min)

Identify critical risks, blockers, and fallback options.

Phase 6: Recommendation (30-45 min)

Deliver a clear Go / Conditional Go / No Go with evidence summary.

Phase 7: Revision (After User Review)

If the user requests changes after reviewing the document:

  1. Read the user's feedback carefully — understand what they want changed
  2. Check for conflicts — does the requested change conflict with prior documents?
  3. Apply changes — update the document
  4. Re-run consistency check — verify the change doesn't break cross-document consistency
  5. Update metadata — set last_updated to today's date
  6. Confirm with user — show the changes and get approval

Gotchas

  • Jumping to a recommendation without evidence. Every Go/No-Go verdict must cite specific findings from the assessment sections. "It feels risky" is not an analysis; cite the PoC failure, the skills gap, or the missing infrastructure.
  • Confusing feasibility with desirability. A feasibility study answers "can we build this?" not "should we build this?" Business ROI and strategic fit are separate concerns; do not conflate them into the technical assessment.
  • Skipping the PoC recommendation when technology is unfamiliar. If the team has no production experience with the proposed technology and no PoC has been run, the only defensible recommendation is Conditional Go with a time-boxed PoC as a prerequisite condition.
  • Underestimating operational feasibility. Teams often assess "we can build it" but forget to assess "we can run it at 3 AM." Always evaluate monitoring, alerting, deployment, and incident response readiness.
  • Ignoring fallback options. A feasibility study that recommends "Go" without defining what happens if the approach fails mid-implementation is incomplete. Always document at least one viable fallback path and its trigger condition.

Handoff

Reads from:

  • 1-business-plan.md — problem definition, constraints, existing systems
  • 2-project-plan.md — timeline constraints, team capacity, budget

Feeds into:

  • technical-specification — feasibility verdict, conditional requirements, risk findings
  • system-architecture-document — technology constraints, integration feasibility, risk mitigations

Quality Gate

Before marking this document as final, verify:

  • All four feasibility dimensions (technical, resource, operational, risk) have explicit verdicts with supporting evidence
  • The recommendation (Go / Conditional Go / No Go) is directly supported by the assessment findings and not contradicted by any dimension
  • At least two alternatives are documented with evidence-based rejection rationale
  • Every Conditional Go condition has an owner and a deadline assigned
  • A fallback option is defined with a clear trigger condition for when to abandon the current approach

Next Steps

After this document is complete, proceed to:

  • technical-specification — detailed system requirements informed by feasibility findings
  • system-architecture-document — architecture designed around validated technology choices
  • Or invoke using-engineering-docs to continue the pipeline

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.