Development SOP (Seed)
Status: Draft v0.1
Owner: BionicLoop engineering
Applies to: all software changes in this repository
1. Purpose
Define a repeatable process that preserves safety, traceability, and test evidence for an investigational connected-device app.
2. Workflow
- Define change scope
- Describe intent and impacted modules.
- Identify if change is safety-impacting.
- Update risk and requirements
- Update
Docs/Quality/RiskAnalysis.mdif risk profile changes. - Add/update
SRS-*items inDocs/Quality/SoftwareRequirementsSpecification.md. - Update design record
- Update
Docs/Quality/SoftwareDesignDescription.mdfor architecture or behavior changes. - Implement change
- Keep closed-loop guardrails intact unless explicitly changed by requirement.
- Verify
- Add/modify tests in line with
SVVP. - Run relevant test suites.
- Run Xcode automated UI tests for user-facing flow changes when deterministic fixtures are available.
- Update traceability
- Update
Docs/Quality/TraceabilityMatrix.mdwith requirement/test/evidence mapping. - Document results
- Record test outcomes and unresolved risks.
- Store evidence artifacts under
Docs/Quality/Evidence/STR-*/...and reference that path in bug/trace docs.
3. Minimum PR Gate (Quality)
A PR is not quality-complete unless it includes:
- requirement linkage (
SRS-*) - tests (or documented rationale if not feasible)
- evidence summary
- traceability update
4. Safety-Critical Change Rules
For runtime, dosing, state persistence, or device-command path changes:
- require explicit risk review (
RA-*) - require design note update (
SDD-*) - require at least one verification artifact reference
- require reviewer sign-off that behavior matches requirement intent
5. Documentation Sync Rules
When behavior changes, update at minimum:
Docs/Architecture/Architecture.mdDocs/Requirements/Requirements.md(high-level product requirement view)- corresponding
Docs/Quality/*artifacts
6. Versioning and Records
- Keep IDs stable (
RA-*,SRS-*,SDD-*,TV-*). - Do not renumber historical IDs; mark deprecated if needed.
- Keep superseded decisions in history (git + changelog notes).
7. Automated UI Test Usage Rules
- Use automated UI tests primarily for deterministic verification:
- routing/navigation
- setup and dismissal behavior
- control visibility and enablement
- state-to-message rendering
- Do not treat automated UI tests as sufficient evidence for:
- BLE timing/reliability
- background wake behavior
- physical delivery/device-state correctness
- For any user-facing change, include one of:
- updated automated UI test coverage, or
- documented rationale why automation is not feasible and manual/system protocol used instead.