3.0 KiB
AGENTS.md
Status — Phase 2 reconciliation complete
docs/REQUIREMENTS.md (153 rows) is the only normative text; scope is the M3 ID subset in docs/MILESTONES.md.
Capability and contract docs live in docs/capabilities/ and docs/contracts/.
Reconciliation evidence is archived under .audit/archive/; the coverage ledger and matrices are in .audit/coverage/.
Starting implementation is Ty's call; when it starts, implement only the M3 ID subset.
Structure contract (read before creating any doc)
Requirements live only in docs/REQUIREMENTS.md; milestone scope in docs/MILESTONES.md.
Before creating or moving any doc, look up its home in docs/STRUCTURE.md (artifact registry + namespace routing).
If no home exists, stop and ask Ty — do not create a new artifact.
Run python tools/check_requirements.py after any docs change; it must pass.
Agent runtime rules
- Subagents (
explore,general) run on a single local GPU and cannot handle concurrency. Invoke only one subagent at a time; never issue parallel subagent calls. - Subagents are for mechanical extraction only (read and list). They never write and never set a disposition; rulings stay with Ty.
Agent context
Read docs/README.md first, then this file, docs/capabilities/CAPTURE.md, docs/capabilities/PHOTOS.md, and docs/capabilities/CREATE.md.
Implement Milestone 3 only. Specification: docs/capabilities/CREATE.md.
Product overview: docs/PRODUCT.md.
M3 scope (what is in vs out) comes from Ty conversations and the reconciled docs/MILESTONES.md + docs/REQUIREMENTS.md.
Behavior for Woo sync, metadata, pricing, and inference is in docs/capabilities/CREATE.md and the docs/contracts/ set. docs/REQUIREMENTS.md is the only normative text.
Do not implement work outside the M3 requirement subset unless Ty expands scope in chat.
Do not touch deploy port :10880. UAT redeploy target is overnight Docker on ubudual5060 :10881.
Milestones and capabilities
Scope and exit criteria: docs/MILESTONES.md. Capability specs: docs/capabilities/. Interfaces: docs/contracts/.
Invariants
- Quantity per listing is one.
- User enters length, thickness, and SKU.
- App may propose remaining listing fields. User reviews before create.
- Non-math fields remain editable until create.
bdft = sqft × thickness_in- Price proposal is
bdft × species $/bdft. User may replace it. Missing rate leaves price empty. - User-entered length, thickness, SKU, price, and taxonomy override computed or inferred values.
- Woo Slab Taxonomy means synced species and wood categories; Edge, Figure, Grade, Thickness, Moisture;
fig-*andfeat-*. Store is source of truth. - Woo auth is WordPress application password (server-side).
WOO_BASE_URLis compose/env. Inference URL is Settings. - SKUs matching
SLAB-UAT-*create as Woo draft. - Create works with inference off.
- Source below the PNG size floor requires a new photo.
- Existing store SKU blocks create.
- Dimension overlay orientation follows the user-approved length axis from Milestone 1.