product.yaml
Product scope
Name the release, the outcome it creates, the actors who use it, the capabilities that matter, and what is deliberately outside the boundary.
Product Intent Package / Format 7.0
A PIP is the smallest current description of what a product should do, how people use it, and which outcomes and constraints matter.
GOOD TO KNOW The PIP is a target, not a project plan.
$ tree product-intent
product-intent/
├── product.yaml
├── architecture/
│ └── stack-context.md
└── experience/
└── user-flows.mdDecide the outcome and boundary first.
Keep the actor path recognizable.
Let the agent inspect, build, and verify against intent.
01 The idea
Coding agents can write code from a brief, a ticket, or a conversation. The failure mode is not usually syntax. It is a drifting idea of what the product is supposed to become.
Evidence tells you what exists. The canonical PIP tells you what the product is meant to be.
02 The package
Format 7.0 has three default files. Together they answer the three questions an agent needs before it changes a product: what is the result, what physical system supports it, and what does the actor see?
product.yaml
Name the release, the outcome it creates, the actors who use it, the capabilities that matter, and what is deliberately outside the boundary.
architecture/stack-context.md
Show the clients, services, managed platforms, stores, external systems, ownership, deployment placement, and connections that make the product real.
experience/user-flows.md
Describe what people do, see, choose, recover from, and reach next. Keep invisible implementation logic out of the user flow.
ADD WHEN NEEDED
acceptance.yamlseveral scenarios or recovery pathsbehavior/rules, decisions, or lifecycle statesdata/product-significant entities and constraintssequences/ordered calls, retries, and fallbackscontracts/shared external boundariesquality/measurable reliability, privacy, or performance bounds03 The skill
The Product Intent Manager skill gives your agent the operating rules around the package: read the canonical PIP first, keep evidence outside it, and preserve intent while implementing.
INSTALL
Keep the skill next to the project when you want the workflow available to every contributor and coding agent.
git clone https://github.com/swabbie-dev/product-intent-package.git
cp -R product-intent-package/skills/product-intent-manager \
.agents/skills/product-intent-managerINVOKE
Use the skill by name, then point the agent at the canonical package location before it plans or edits.
Use $product-intent-manager.
Read the canonical PIP at product/product-intent
before deciding what this change should do.ALIGN
Inspect existing owners, follow the visible flow, and report deviations outside the PIP instead of quietly changing intent.
Read → inspect → implement → verify
If the target is unclear, raise one
product question before adding policy.The skill helps an agent manage intent. It does not grant permission to change a canonical product definition, deploy code, or mutate external systems.
04 In a project
Here is a deliberately fictional starting point. The product is small enough to read in one pass, but specific enough to guide an agent.
schema_version: 7.0.0
name: Desklight
release: 1.0.0
outcome: >-
A team can see the next shared task and move it
forward without losing the current owner.
boundary: >-
One shared board, one active task per person, and
visible loading, completion, and recovery states.
actors:
- id: ACTOR-001
name: Teammate
goal: Keep shared work moving.
capabilities:
- id: CAP-001
name: Advance shared work
actor_ids: [ACTOR-001]
outcome: The task and its owner are visible after each action.Read product.yaml. State the outcome and boundary in your own words.
Read the stack context and user flow. Identify the existing implementation owner for the path.
Make the smallest change that aligns the code with the PIP. Keep new behavior inside its capability.
Run the focused regression and review the diff. Put observations and gaps in task notes, not the PIP.
05 The guardrails
A PIP is useful when it stays coherent, current, and proportional. These are the habits that keep a package from turning into another document graveyard.
The package says what the product is meant to be now. Git and working notes carry the chronology.
Keep a decision in the artifact responsible for it, then link to that owner when another view needs context.
User flows show visible experience. Sequences show execution. Stack context shows physical ownership. Do not make one diagram do all three.
A different end state belongs in a coherent PIP fork until an authorized editor adopts it.
Code, tests, tickets, and runtime behavior tell you what exists. They do not silently decide what should ship.