Files

74 lines
2.7 KiB
Markdown

---
date: {Current date and time with timezone in ISO format}
author: {User from injected git context}
commit: {Current commit hash}
branch: {Current branch name}
repository: {Repository name}
topic: "{Feature topic}"
tags: [intent, frd, relevant-component-names]
status: complete
last_updated: {Same ISO timestamp as `date:` above}
last_updated_by: {User from injected git context}
---
# FRD: {Feature topic}
## Summary
{2-3 sentences. The settled feature concept after the interview — what we're building, in the developer's framing.}
## Problem & Intent
{What the developer is trying to solve and why. Capture the underlying motivation, not the proposed solution.}
## Goals
- {Explicit goal — what success looks like}
- {Goal 2}
## Non-Goals
- {Explicit exclusion — surfaced during the interview}
- {Likely scope-creep vector the developer ruled out}
## Functional Requirements
1. {Numbered, independently testable. "The system SHALL …"}
2. {Requirement 2}
## Non-Functional Requirements
- **Performance**: {latency / throughput / load expectations, or "no specific constraint"}
- **Security**: {auth, data handling, threat model edges}
- **UX / Accessibility**: {interaction model, a11y constraints}
- **Reliability**: {error handling expectations, retry/recovery semantics}
## Constraints & Assumptions
- {Technical constraint — runtime, dependency, platform}
- {Schedule / organizational constraint}
- {Assumption being made — explicit so research can verify}
## Acceptance Criteria
- [ ] {Observable pass condition a reviewer can check without reading code}
- [ ] {Criterion 2}
## Recommended Approach
{1-2 sentences. The architectural shape implied by the decisions — e.g., "New command in `packages/rpiv-pi/extensions/`, writes JSON to stdout, no persistence layer." The downstream `research` skill validates this against the codebase and passes this text to `scope-tracer` as the topic.}
## Decisions
### {Decision 1 — short title}
**Question**: {Question as asked during the interview, or "Pre-resolved from codebase evidence"}
**Recommended**: {The recommendation that was offered}
**Chosen**: {What the developer picked, or the evidence-derived answer}
**Rationale**: {1 line — why this was chosen, or `evidence: path/to/file.ext:line` for codebase-derived}
### {Decision 2 — short title}
**Question**: …
**Recommended**: …
**Chosen**: …
**Rationale**: …
## Open Questions
{Only items the developer explicitly deferred. Each becomes an Open Question for `research` to answer or carry forward into Developer Context.}
- {Deferred item 1 — what's deferred, why}
## References
- {Input file or ticket}
- {Related artifact, e.g., `thoughts/shared/research/<YYYY-MM-DD_HH-MM-SS>_<topic>.md`}