Files
DevRunbook-Public/docs/01-product-requirements.md
DevRunbook release export cfd2804e27
Managed validation / full (push) Successful in 3m18s
Publish DevRunbook source
2026-09-03 04:09:17 +02:00

188 lines
7.9 KiB
Markdown

# 01 — Product requirements
## Scope definition
The MVP provides a complete path from curated playbook discovery to repository-aware prompt export. Direct Codex execution, team approvals and public community distribution are later phases.
## Functional requirements
### Library and discovery
- **FR-LIB-001:** Index all valid built-in and private playbook versions.
- **FR-LIB-002:** Search title, summary, tags, category, problem statement and supported stacks.
- **FR-LIB-003:** Filter by category, lifecycle, risk tier, autonomy support, playbook type, stack and quality status.
- **FR-LIB-004:** Sort by relevance, recently updated, title and quality status.
- **FR-LIB-005:** Persist search and filter state in the URL.
- **FR-LIB-006:** Allow personal favorites and collections.
- **FR-LIB-007:** Show why a playbook matches a repository or query.
- **FR-LIB-008:** Prevent deprecated playbooks from appearing as default recommendations.
### Playbook detail
- **FR-DET-001:** Show purpose, expected outcome and explicit non-goals.
- **FR-DET-002:** Show required and optional inputs.
- **FR-DET-003:** Show supported modes and autonomy levels.
- **FR-DET-004:** Show risk tier, guardrails, validation and completion contract.
- **FR-DET-005:** Show compatible stacks and known limitations.
- **FR-DET-006:** Show version, lifecycle, changelog and quality evidence.
- **FR-DET-007:** Allow a user to start composition with or without a repository profile.
### Repository profiles
- **FR-REP-001:** Create profiles manually without connecting a forge.
- **FR-REP-002:** Store languages, frameworks, package managers, services, databases and deployment types.
- **FR-REP-003:** Store setup, lint, typecheck, test, build and smoke-test commands.
- **FR-REP-004:** Store protected paths, excluded paths and policy constraints.
- **FR-REP-005:** Store source metadata and evidence timestamp.
- **FR-REP-006:** Version profile snapshots for generated runs.
- **FR-REP-007:** Import and export a schema-validated profile.
- **FR-REP-008:** Allow manual overrides without destroying source observations.
### Composer
- **FR-COM-001:** Resolve playbook inputs through a guided form.
- **FR-COM-002:** Select a repository profile or operate profile-free.
- **FR-COM-003:** Select work mode and autonomy level.
- **FR-COM-004:** Select or confirm scope and protected paths.
- **FR-COM-005:** Preview generated output continuously.
- **FR-COM-006:** Explain the provenance of each generated block.
- **FR-COM-007:** Validate required inputs and compatibility before export.
- **FR-COM-008:** Run prompt lint and distinguish errors from warnings.
- **FR-COM-009:** Autosave a draft locally or server-side.
- **FR-COM-010:** Produce deterministic output from normalized inputs.
### Prompt and Run Pack output
- **FR-OUT-001:** Copy plain prompt text.
- **FR-OUT-002:** Download Markdown.
- **FR-OUT-003:** Generate a ZIP Run Pack with manifest and digests.
- **FR-OUT-004:** Optionally generate AGENTS.md recommendations without overwriting an existing file.
- **FR-OUT-005:** Store an immutable run snapshot.
- **FR-OUT-006:** Re-render a historical run without silently using a newer playbook version.
- **FR-OUT-007:** Re-import a Run Pack and verify its manifest.
- **FR-OUT-008:** Ensure safe filenames and prevent archive traversal.
### Content authoring
- **FR-AUT-001:** Import a Playbook Package from a directory or ZIP.
- **FR-AUT-002:** Validate structural and semantic rules.
- **FR-AUT-003:** Edit private drafts in a schema-aware editor.
- **FR-AUT-004:** Render examples with test input sets.
- **FR-AUT-005:** Publish by creating an immutable semantic version.
- **FR-AUT-006:** Compare versions and require a changelog.
- **FR-AUT-007:** Deprecate without deleting historical versions.
- **FR-AUT-008:** Export a complete package for Git review.
### Gitea integration
- **FR-GIT-001:** Configure a Gitea base URL and token.
- **FR-GIT-002:** Test connectivity and discover server version/capabilities.
- **FR-GIT-003:** List accessible repositories with pagination.
- **FR-GIT-004:** Import repository metadata and selected governance evidence.
- **FR-GIT-005:** Read relevant files through a bounded allowlist and size limits.
- **FR-GIT-006:** Create a timestamped repository snapshot.
- **FR-GIT-007:** Recommend playbooks based on observable gaps.
- **FR-GIT-008:** Remain strictly read-only in the first implementation.
### Quality and evaluations
- **FR-QUA-001:** Lint playbooks and rendered prompts.
- **FR-QUA-002:** Store evaluation cases tied to exact versions.
- **FR-QUA-003:** Show quality dimensions separately rather than one unexplained percentage.
- **FR-QUA-004:** Distinguish authored claims from executed evidence.
- **FR-QUA-005:** Mark stale evidence when its environment or fixture changes.
- **FR-QUA-006:** Block “Validated” status without required evidence.
### Administration and audit
- **FR-ADM-001:** Show integration health and background-job failures.
- **FR-ADM-002:** Record security-relevant audit events.
- **FR-ADM-003:** Allow export and deletion of user-owned data.
- **FR-ADM-004:** Configure retention for generated artifacts and logs.
- **FR-ADM-005:** Expose backup and restore guidance.
## Non-functional requirements
### Reliability
- Generated runs must reference immutable playbook and profile snapshots.
- Import operations must be idempotent.
- A failed background import must not leave a partially published version.
- The app must remain usable when Gitea is unavailable.
### Performance targets
Reference targets on a modest self-hosted system:
- library search P95 below 500 ms with 10,000 indexed playbook versions;
- playbook detail P95 below 400 ms excluding first cold start;
- prompt composition below 250 ms for ordinary packages;
- first meaningful page content below 2.5 seconds on a typical local network;
- ZIP generation below 3 seconds for a standard Run Pack under 5 MB.
These are engineering targets, not user-facing guarantees. Performance tests must record hardware and data shape.
### Security
- integration secrets encrypted at rest;
- secret values never returned after initial storage;
- strict server-side authorization for every workspace resource;
- imported archives and paths treated as hostile;
- no arbitrary command execution in the MVP;
- external URLs validated against SSRF controls;
- sensitive values redacted from logs and generated prompts;
- content security policy and secure cookie defaults.
### Privacy
- no repository content sent to third parties by the reference implementation unless the operator explicitly configures such a service later;
- configurable data retention;
- clear evidence of what Gitea data was imported;
- delete and export workflows for personal data;
- no telemetry by default in self-hosted mode.
### Accessibility and UX
- target WCAG 2.2 AA behavior;
- full keyboard operation for core flows;
- visible focus states;
- reduced-motion support;
- no color-only meaning;
- responsive behavior from laptop to ultrawide screens;
- all destructive actions require explicit confirmation and explain consequences.
### Maintainability
- strict TypeScript and schema validation;
- domain logic outside UI and transport layers;
- documented migrations;
- no circular package dependencies;
- stable adapter interfaces for forge and agent integrations;
- tests at domain, persistence, API and browser-flow levels.
## MVP release boundary
Included:
- single installation with personal workspace support;
- built-in and private playbooks;
- repository profiles;
- composer and exports;
- Run Pack history;
- local authentication;
- optional read-only Gitea integration;
- quality/lint basics;
- Docker/Unraid deployment.
Deferred:
- organization billing;
- public community marketplace;
- direct write operations to Gitea;
- direct Codex code execution;
- multi-agent orchestration;
- scheduled audits;
- public SaaS multitenancy;
- GitHub and GitLab connectors;
- vector search.