New to Claude Skills? Learn how to install them →

Paffaan-m on GitHub

Product Capability

Free

Transform product intent into actionable engineering constraints.

by affaan-m239.3k stars on affaan-m/ecc
3 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What Product Capability does

The Product Capability skill is designed to bridge the gap between product intent and engineering implementation. When faced with product requirements documents (PRDs), roadmap items, or discussions that lack explicit implementation constraints, this skill helps clarify what must be true before development begins. It is particularly useful in scenarios where features involve multiple services or teams, ensuring that all parties have a clear understanding of the capabilities that need to be delivered.

This skill operates by taking existing product documentation and extracting the necessary constraints that must be satisfied for implementation. It emphasizes the importance of stating clear and precise capability requirements, which helps prevent ambiguity and miscommunication during the development process. By documenting these constraints, teams can avoid rediscovering hidden assumptions during engineering reviews, resulting in a more efficient workflow.

The output of this skill is a structured capability plan that includes a summary of the capability, non-goals, actors involved, required states, and any open questions that need to be resolved. This plan serves as a durable artifact that can be referenced across different projects and teams, promoting consistency and clarity in product development. The goal is to produce a reusable document that encapsulates the necessary details for implementation without adding unnecessary layers of planning.

In summary, the Product Capability skill is ideal for teams looking to formalize their product requirements into clear engineering constraints, making it easier to translate product discussions into actionable development tasks. It is particularly beneficial for senior engineers and product managers who need to ensure that all aspects of a feature are well-defined before coding begins.

When to use it

Use this skill when you have a PRD or product discussion but need to clarify the engineering constraints before implementation.

When not to use it

This skill is not suited for early-stage brainstorming or when product intent is not yet defined.

What you can build with it

Clarifying Implementation Constraints

When a PRD outlines a new feature but lacks specific engineering constraints, this skill helps define what must be true before coding starts.

Multi-Team Collaboration

For features that span multiple services, use this skill to create a capability contract that all teams can reference.

Creating Reusable Documentation

When you need a durable artifact for future reference, this skill generates a capability plan that can be reused across projects.

How to install Product Capability

View source

1. Install with the skills CLI

npx skills add affaan-m/ecc/product-capability --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by affaan-m

Product Capability

This skill turns product intent into explicit engineering constraints.

Use it when the gap is not "what should we build?" but "what exactly must be true before implementation starts?"

When to Use

  • A PRD, roadmap item, discussion, or founder note exists, but the implementation constraints are still implicit
  • A feature crosses multiple services, repos, or teams and needs a capability contract before coding
  • Product intent is clear, but architecture, data, lifecycle, or policy implications are still fuzzy
  • Senior engineers keep restating the same hidden assumptions during review
  • You need a reusable artifact that can survive across harnesses and sessions

Canonical Artifact

If the repo has a durable product-context file such as PRODUCT.md, docs/product/, or a program-spec directory, update it there.

If no capability manifest exists yet, create one using the template at:

  • docs/examples/product-capability-template.md

The goal is not to create another planning stack. The goal is to make hidden capability constraints durable and reusable.

Non-Negotiable Rules

  • Do not invent product truth. Mark unresolved questions explicitly.
  • Separate user-visible promises from implementation details.
  • Call out what is fixed policy, what is architecture preference, and what is still open.
  • If the request conflicts with existing repo constraints, say so clearly instead of smoothing it over.
  • Prefer one reusable capability artifact over scattered ad hoc notes.

Inputs

Read only what is needed:

  1. Product intent
    • issue, discussion, PRD, roadmap note, founder message
  2. Current architecture
    • relevant repo docs, contracts, schemas, routes, existing workflows
  3. Existing capability context
    • PRODUCT.md, design docs, RFCs, migration notes, operating-model docs
  4. Delivery constraints
    • auth, billing, compliance, rollout, backwards compatibility, performance, review policy

Core Workflow

1. Restate the capability

Compress the ask into one precise statement:

  • who the user or operator is
  • what new capability exists after this ships
  • what outcome changes because of it

If this statement is weak, the implementation will drift.

2. Resolve capability constraints

Extract the constraints that must hold before implementation:

  • business rules
  • scope boundaries
  • invariants
  • trust boundaries
  • data ownership
  • lifecycle transitions
  • rollout / migration requirements
  • failure and recovery expectations

These are the things that often live only in senior-engineer memory.

3. Define the implementation-facing contract

Produce an SRS-style capability plan with:

  • capability summary
  • explicit non-goals
  • actors and surfaces
  • required states and transitions
  • interfaces / inputs / outputs
  • data model implications
  • security / billing / policy constraints
  • observability and operator requirements
  • open questions blocking implementation

4. Translate into execution

End with the exact handoff:

  • ready for direct implementation
  • needs architecture review first
  • needs product clarification first

If useful, point to the next ECC-native lane:

  • project-flow-ops
  • workspace-surface-audit
  • api-connector-builder
  • dashboard-builder
  • tdd-workflow
  • verification-loop

Output Format

Return the result in this order:

CAPABILITY
- one-paragraph restatement

CONSTRAINTS
- fixed rules, invariants, and boundaries

IMPLEMENTATION CONTRACT
- actors
- surfaces
- states and transitions
- interface/data implications

NON-GOALS
- what this lane explicitly does not own

OPEN QUESTIONS
- blockers or product decisions still required

HANDOFF
- what should happen next and which ECC lane should take it

Good Outcomes

  • Product intent is now concrete enough to implement without rediscovering hidden constraints mid-PR.
  • Engineering review has a durable artifact instead of relying on memory or Slack context.
  • The resulting plan is reusable across Claude Code, Codex, Cursor, OpenCode, and ECC 2.0 planning surfaces.

Frequently asked questions about Product Capability

Similar skills