chore: OpenSpec scaffold
This commit is contained in:
commit
cd53606dd4
23 changed files with 551 additions and 0 deletions
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# General
|
||||
.DS_Store
|
||||
*.log
|
||||
node_modules/
|
||||
dist/
|
||||
build/
|
||||
.cache/
|
||||
.env*
|
||||
|
||||
# Mobile/Flutter/Expo (if chosen later)
|
||||
.gradle/
|
||||
android/app/build/
|
||||
ios/Pods/
|
||||
.flutter-plugins*
|
||||
.expo/
|
||||
|
||||
22
README.md
Normal file
22
README.md
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# More Than A Diagnosis — Community Hub (OpenSpec)
|
||||
|
||||
This repository hosts the multi‑platform community hub for morethanadiagnosis.com, designed for people living with cancer or terminal diagnoses. The project strictly follows the OpenSpec methodology and is compatible with https://github.com/Fission-AI/OpenSpec.
|
||||
|
||||
Key goals
|
||||
- Full feature parity across Android, iOS, and Web
|
||||
- Accessibility tailored to chronic/terminal illness communities (WCAG 2.2 AA+)
|
||||
- Strong privacy and compliance practices (HIPAA/GDPR/platform policies)
|
||||
- Open APIs and modular architecture to support open‑source and third‑party extensions
|
||||
- Seamless migration from the existing Wix site
|
||||
|
||||
Start here
|
||||
- See `openspec/project.md` for conventions, workflow, and architectural guardrails.
|
||||
- Propose changes with the template in `openspec/templates/proposal-template.md`.
|
||||
- Active and archived proposals live under `openspec/changes/`.
|
||||
- Approved/implemented specs live under `openspec/specs/`.
|
||||
|
||||
Repository layout
|
||||
- `openspec/` — OpenSpec workflow, specs, and changes
|
||||
- `apps/` — App code (placeholders for web and mobile; to be proposed via OpenSpec)
|
||||
- `packages/` — Shared libraries/modules (to be proposed via OpenSpec)
|
||||
|
||||
32
ROADMAP.md
Normal file
32
ROADMAP.md
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# Roadmap (Mapped to OpenSpec Cycles)
|
||||
|
||||
Phase 0 — Foundations (Weeks 0–2)
|
||||
- /propose Project guardrails → finalize `openspec/project.md`
|
||||
- /propose Architecture baseline → `openspec/specs/architecture.md`
|
||||
- /propose Privacy & Accessibility baselines → `openspec/specs/privacy-compliance.md`, `openspec/specs/accessibility.md`
|
||||
|
||||
Phase 1 — Migration Prep (Weeks 2–4)
|
||||
- /propose Wix inventory & export plan → `openspec/specs/migration-wix.md`
|
||||
- /propose Data model v1 → `openspec/specs/data-model.md`
|
||||
- /review compliance,a11y on migration plan
|
||||
|
||||
Phase 2 — Core Features MVP (Weeks 4–10)
|
||||
- Forum MVP → `feature-forum.md`
|
||||
- Profiles → `feature-profiles.md`
|
||||
- Resources → `feature-resources.md`
|
||||
- Blog (internal + Substack) → `feature-blog.md`
|
||||
|
||||
Phase 3 — Media & Tribute (Weeks 8–12)
|
||||
- Podcast hosting → `feature-podcast.md`
|
||||
- Tribute page → `feature-tribute.md`
|
||||
|
||||
Phase 4 — Commerce (Weeks 10–14)
|
||||
- Merch store → `feature-merch.md`
|
||||
|
||||
Phase 5 — Full Migration & Launch (Weeks 12–16)
|
||||
- Dry‑run imports, redirects, content QA
|
||||
- A11y + compliance sign‑off, incident runbook
|
||||
|
||||
For each item
|
||||
- Propose → Review (a11y/compliance/security/platform) → Apply (merge spec) → Implement → Validate → Archive
|
||||
|
||||
11
apps/README.md
Normal file
11
apps/README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# Apps (placeholders)
|
||||
|
||||
Code for Android/iOS/Web apps will live here once proposed and approved via OpenSpec.
|
||||
|
||||
Candidates to be proposed
|
||||
- React Native + Expo (Android/iOS) with a shared design system
|
||||
- Next.js (Web) with server‑side rendering and shared UI package
|
||||
- Or Flutter (Android/iOS/Web) for single codebase parity
|
||||
|
||||
Decide via proposal referencing `openspec/specs/architecture.md`.
|
||||
|
||||
23
openspec/README.md
Normal file
23
openspec/README.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# OpenSpec Workflow (Project-Compatible)
|
||||
|
||||
This repository uses OpenSpec for all proposals, reviews, changes, and specifications. The structure and slash commands are compatible with https://github.com/Fission-AI/OpenSpec.
|
||||
|
||||
Directory layout
|
||||
- `openspec/project.md` — Project conventions, workflow details, and architectural guidelines
|
||||
- `openspec/specs/` — Accepted/implemented specifications
|
||||
- `openspec/changes/` — Proposals and change cycles (propose → review → apply → archive)
|
||||
- `openspec/templates/` — Proposal templates and authoring helpers
|
||||
|
||||
Lifecycle (every change)
|
||||
1) Propose: author a proposal in `openspec/changes/` using the template
|
||||
2) Review: async discussion; resolve risks, compliance, and accessibility
|
||||
3) Apply: merge and move normative content into `openspec/specs/`
|
||||
4) Archive: close the proposal with a link to the applied spec/PR
|
||||
|
||||
Slash commands (AI-friendly)
|
||||
- `/propose` — start a proposal using the template
|
||||
- `/review` — request targeted review (compliance, accessibility, security, data, mobile, web)
|
||||
- `/apply` — prepare the agreed diff and migration steps
|
||||
- `/archive` — mark the proposal as archived with links
|
||||
- Additional commands and examples: `openspec/ai-commands.md`
|
||||
|
||||
30
openspec/ai-commands.md
Normal file
30
openspec/ai-commands.md
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# AI Slash Commands Workflow
|
||||
|
||||
These commands align with OpenSpec and can be used with Claude Code, Codex, Copilot, or similar assistants. Include them in PR descriptions, issues, or comments.
|
||||
|
||||
Core commands
|
||||
- `/propose <title> [scope=spec|infra|policy] [labels=a11y,compliance] [assignees=@owner] [model=claude|gpt|copilot]`
|
||||
- Scaffolds `openspec/changes/YYYY-MM-DD-title/proposal.md` from the template
|
||||
- `/review areas=accessibility,compliance,security,mobile,web,backend`
|
||||
- Summons focused review checklists and routes to domain owners
|
||||
- `/apply spec=openspec/specs/<target>.md [pr=<link>]`
|
||||
- Moves accepted sections into the target spec; opens/updates PR
|
||||
- `/archive reason="accepted into <spec>" link=<PR>`
|
||||
- Finalizes the change and records traceability
|
||||
|
||||
Helpful commands
|
||||
- `/assign @user1 @user2` — set reviewers/owners
|
||||
- `/estimate 5d` — initial t‑shirt or time estimate
|
||||
- `/plan` — generate a milestone/task breakdown tied to the spec
|
||||
- `/generate tests scope=<module>` — create or update test skeletons per acceptance criteria
|
||||
|
||||
Usage examples
|
||||
- Start a feature: `/propose Community Forum MVP scope=spec labels=a11y,compliance,security model=claude`
|
||||
- Ask for targeted review: `/review areas=accessibility,compliance`
|
||||
- Apply after approval: `/apply spec=openspec/specs/feature-forum.md pr=<link>`
|
||||
- Archive the change: `/archive reason="merged" link=<PR>`
|
||||
|
||||
Agent notes
|
||||
- Keep assistants grounded in `openspec/project.md` guardrails.
|
||||
- When generating code, require an approved spec link in the PR description.
|
||||
|
||||
16
openspec/changes/README.md
Normal file
16
openspec/changes/README.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Changes
|
||||
|
||||
OpenSpec change proposals live here during their lifecycle:
|
||||
|
||||
1) Propose — create `yyyy-mm-dd-<short-title>/proposal.md` using the template
|
||||
2) Review — iterate via comments; track decisions and updates in the same folder
|
||||
3) Apply — move normative content into `openspec/specs/` via PR; link back
|
||||
4) Archive — add `ARCHIVED.md` with reason and pointers
|
||||
|
||||
Naming
|
||||
- Folder: `YYYY-MM-DD-short-title`
|
||||
- Primary file: `proposal.md`
|
||||
|
||||
Helpers
|
||||
- Use `/propose`, `/review`, `/apply`, `/archive` slash commands for consistency
|
||||
|
||||
69
openspec/project.md
Normal file
69
openspec/project.md
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# OpenSpec Project Conventions and Architectural Guidelines
|
||||
|
||||
Status: draft
|
||||
Owners: Program Lead, Architecture, Compliance
|
||||
Last updated: 2025-11-17
|
||||
|
||||
Purpose
|
||||
- Define repository‑wide conventions for OpenSpec usage, spec authoring, compliance and accessibility gates, and architectural boundaries.
|
||||
|
||||
OpenSpec conventions
|
||||
- Filenames: use kebab‑case; prefix with domain (e.g., `feature-forum.md`).
|
||||
- Status labels: `draft`, `in-review`, `approved`, `implemented`, `archived`.
|
||||
- Each proposal follows the template in `openspec/templates/proposal-template.md` and lives under `openspec/changes/`.
|
||||
- Accepted specs move to `openspec/specs/` with clear versioning.
|
||||
- One change = one lifecycle: propose → review → apply → archive.
|
||||
|
||||
Slash command conventions
|
||||
- `/propose <title> [scope=spec|infra|policy] [labels=...] [assignees=...] [model=claude|gpt|copilot]`
|
||||
- `/review <areas=accessibility,compliance,security,mobile,web,backend>`
|
||||
- `/apply <spec=<file>> [pr=link]` moves normative text to `openspec/specs/`
|
||||
- `/archive <reason> [link=PR]` marks closure with traceability
|
||||
- `/assign @user1 @user2` sets proposal owners
|
||||
|
||||
Decision records
|
||||
- Record important decisions inline in proposals under “Alternatives considered” and “Decision & rationale”.
|
||||
- For cross‑cutting decisions, add a short entry in `openspec/specs/architecture.md#decisions`.
|
||||
|
||||
Architecture (guardrails)
|
||||
- Modular domain map:
|
||||
- Identity & Profiles
|
||||
- Community Forum
|
||||
- Content (Blog & Resources)
|
||||
- Media (Podcast)
|
||||
- Tribute/Memorials
|
||||
- Commerce (Merch)
|
||||
- Compliance, Auditing & Privacy
|
||||
- Platform (Mobile/Web Apps) and Design System
|
||||
- Integration & APIs
|
||||
|
||||
API standards
|
||||
- OpenAPI-first for HTTP; JSON over HTTPS; WebSocket for realtime.
|
||||
- OAuth2/OIDC for auth; short‑lived access tokens; rotate refresh tokens.
|
||||
- Resource versioning via URI (`/v1`) and schema versioning in payloads as needed.
|
||||
- Pagination, idempotency keys for writes, and explicit rate limits.
|
||||
|
||||
Data protection & compliance
|
||||
- Data classes: `Public`, `PII`, `PHI`. Keep PHI minimized and isolated.
|
||||
- Encryption: TLS 1.3 in transit, AES‑256 at rest; per‑table/field encryption for PHI/PII where applicable.
|
||||
- Access controls: role‑based (RBAC) and attribute‑based (ABAC) where necessary; audited access to sensitive data.
|
||||
- Data retention & deletion: GDPR erase requests and well‑defined retention policies per data class.
|
||||
- Logging: no PHI/PII in logs; use structured logs with redaction.
|
||||
|
||||
Accessibility baseline
|
||||
- Target WCAG 2.2 AA+; support reduced motion, dynamic type/large fonts, high contrast, screen readers, and keyboard/assistive navigation.
|
||||
- Mobile: iOS VoiceOver / Android TalkBack parity for all screens.
|
||||
- Web: semantic landmarks, focus order, ARIA where necessary; test via automated and manual checks per spec.
|
||||
|
||||
Observability & quality
|
||||
- Tracing for backend APIs; structured logs; SLOs for critical user journeys.
|
||||
- Test pyramid per component: unit, integration, e2e. Accessibility checks included in CI for UI changes.
|
||||
|
||||
Release management
|
||||
- Feature flags for staged rollouts. Rollback plan defined in each proposal.
|
||||
- Data migrations versioned and reversible; dry‑runs for large imports.
|
||||
|
||||
Contribution
|
||||
- All code contributions must link to an approved OpenSpec change.
|
||||
- Security review is mandatory for anything touching PHI/PII.
|
||||
|
||||
21
openspec/specs/accessibility.md
Normal file
21
openspec/specs/accessibility.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# Accessibility Spec
|
||||
|
||||
Status: draft
|
||||
Owners: Accessibility Lead
|
||||
|
||||
Standards
|
||||
- WCAG 2.2 AA minimum; include reduced motion, dynamic type/large text, high contrast, screen reader parity.
|
||||
|
||||
Mobile
|
||||
- iOS VoiceOver and Android TalkBack support across all screens; large tap targets; flexible layouts.
|
||||
|
||||
Web
|
||||
- Semantic HTML landmarks, focus management, ARIA when necessary, keyboard navigation.
|
||||
|
||||
Validation
|
||||
- Automated: axe checks in CI for web; lint rules for RN/Flutter accessibility.
|
||||
- Manual: assistive tech smoke tests per release; usability sessions with community advisors.
|
||||
|
||||
Non‑functional
|
||||
- Performance budgets mindful of low‑end devices and intermittent connectivity.
|
||||
|
||||
27
openspec/specs/architecture.md
Normal file
27
openspec/specs/architecture.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Architecture & APIs
|
||||
|
||||
Status: draft
|
||||
Owners: Architecture
|
||||
|
||||
Overview
|
||||
- Modular, domain‑driven architecture with clear boundaries and open APIs.
|
||||
|
||||
Modules
|
||||
- Identity & Profiles, Forum, Content (Blog/Resources), Media (Podcast), Tribute, Commerce, Compliance, Platform (Design System + Apps), Integration.
|
||||
|
||||
Client platforms
|
||||
- Mobile: Android/iOS (proposed: React Native/Expo or Flutter — to be decided via proposal)
|
||||
- Web: Next.js/SSR or Flutter Web — parity is mandatory and defined per feature spec
|
||||
|
||||
Backend
|
||||
- Proposed: API service with OpenAPI, Postgres primary store, object storage for media, search index for forum/content, queue for async tasks.
|
||||
|
||||
API standards
|
||||
- REST+JSON with OpenAPI; WebSocket for realtime forum/presence; OAuth2/OIDC; rate limits; pagination; idempotency keys.
|
||||
|
||||
Data boundaries
|
||||
- Strict separation of PHI/PII domains; audit and consent services.
|
||||
|
||||
Decisions
|
||||
- <record cross‑cutting decisions here>
|
||||
|
||||
15
openspec/specs/data-model.md
Normal file
15
openspec/specs/data-model.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# Data Model
|
||||
|
||||
Status: draft
|
||||
Owners: Architecture, Data
|
||||
|
||||
Entities (initial)
|
||||
- User, Profile, Consent, ForumCategory, ForumThread, ForumPost, BlogPost, Resource, PodcastEpisode, Tribute, Product, Order, MediaAsset.
|
||||
|
||||
Notes
|
||||
- Mark each field with data class (Public/PII/PHI) and retention policy.
|
||||
- Define soft‑delete vs hard‑delete behavior for user‑generated content.
|
||||
|
||||
Migrations
|
||||
- Version every schema change; ensure reversible steps; seed data for initial categories/resources.
|
||||
|
||||
18
openspec/specs/feature-blog.md
Normal file
18
openspec/specs/feature-blog.md
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Feature: Blog (Internal + Substack Cross‑Posting)
|
||||
|
||||
Status: draft
|
||||
Owners: Content
|
||||
|
||||
Summary
|
||||
- Native blog with editor, scheduling, tags, and optional Substack cross‑posting.
|
||||
|
||||
Requirements
|
||||
- Members‑only posts; SEO for public posts; RSS/Atom
|
||||
- Cross‑post integration: publish and sync canonical links and excerpts
|
||||
|
||||
API
|
||||
- Posts CRUD; media; tags; cross‑post webhooks
|
||||
|
||||
Acceptance Criteria
|
||||
- Content parity; accessibility in editor and output; analytics without PII/PHI
|
||||
|
||||
22
openspec/specs/feature-forum.md
Normal file
22
openspec/specs/feature-forum.md
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Feature: Community Forum
|
||||
|
||||
Status: draft
|
||||
Owners: Community
|
||||
|
||||
Summary
|
||||
- Members forum with categories, threads, posts, reactions, moderation, notifications, and realtime updates.
|
||||
|
||||
Requirements
|
||||
- Accessibility parity (screen readers, keyboard navigation, large text)
|
||||
- Privacy by default: pseudonyms, private groups, report/flag, mod tooling
|
||||
- Realtime: typing/presence optional; live updates for new posts
|
||||
|
||||
API
|
||||
- Threads: list/create/update; Posts: list/create/edit/delete; Moderation endpoints
|
||||
|
||||
Migration
|
||||
- Import forum‑like content from Wix (if any); mapping in `migration-wix.md`.
|
||||
|
||||
Acceptance Criteria
|
||||
- Cross‑platform UI parity and assistive tech checks; moderation workflows verified
|
||||
|
||||
17
openspec/specs/feature-merch.md
Normal file
17
openspec/specs/feature-merch.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Feature: Merch Store
|
||||
|
||||
Status: draft
|
||||
Owners: Commerce
|
||||
|
||||
Summary
|
||||
- Storefront for merchandise with secure checkout through a PCI‑compliant provider.
|
||||
|
||||
Requirements
|
||||
- External payment processor; no card data stored; tax/shipping rules
|
||||
|
||||
API
|
||||
- Product catalog; orders; webhooks for fulfillment
|
||||
|
||||
Acceptance Criteria
|
||||
- Accessibility parity; privacy and PCI boundaries; fraud checks
|
||||
|
||||
17
openspec/specs/feature-podcast.md
Normal file
17
openspec/specs/feature-podcast.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Feature: Podcast Hosting
|
||||
|
||||
Status: draft
|
||||
Owners: Media
|
||||
|
||||
Summary
|
||||
- Host and distribute podcast episodes with transcripts and player embeds.
|
||||
|
||||
Requirements
|
||||
- Upload flow with loudness normalization; transcripts for accessibility; RSS feed
|
||||
|
||||
API
|
||||
- Episodes CRUD; media processing callbacks; feed generation
|
||||
|
||||
Acceptance Criteria
|
||||
- Transcripts available; accessible player controls; analytics without PII/PHI
|
||||
|
||||
18
openspec/specs/feature-profiles.md
Normal file
18
openspec/specs/feature-profiles.md
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Feature: Profiles
|
||||
|
||||
Status: draft
|
||||
Owners: Identity
|
||||
|
||||
Summary
|
||||
- Full profile management with privacy controls and optional pseudonyms.
|
||||
|
||||
Requirements
|
||||
- Profile fields with data class tags; consent-driven visibility controls
|
||||
- Avatar and pronouns; health journey fields optional and private by default
|
||||
|
||||
API
|
||||
- CRUD for profiles; consent endpoints; media upload policy
|
||||
|
||||
Acceptance Criteria
|
||||
- GDPR export/delete; HIPAA constraints respected; accessibility parity
|
||||
|
||||
18
openspec/specs/feature-resources.md
Normal file
18
openspec/specs/feature-resources.md
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Feature: Resources (Public + Members‑Only)
|
||||
|
||||
Status: draft
|
||||
Owners: Content
|
||||
|
||||
Summary
|
||||
- Curated resources with access tiers, tagging, and search.
|
||||
|
||||
Requirements
|
||||
- Public section for discovery; members‑only section for community resources
|
||||
- Accessibility readable layouts; offline‑friendly patterns where feasible
|
||||
|
||||
API
|
||||
- Resources CRUD; taxonomy; search index
|
||||
|
||||
Acceptance Criteria
|
||||
- Clear labeling of access tier; WCAG checks; analytics without PII/PHI
|
||||
|
||||
17
openspec/specs/feature-tribute.md
Normal file
17
openspec/specs/feature-tribute.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Feature: Tribute / Memorial Page
|
||||
|
||||
Status: draft
|
||||
Owners: Community
|
||||
|
||||
Summary
|
||||
- Tribute pages honoring members; controls for family moderators; optional donations link.
|
||||
|
||||
Requirements
|
||||
- Sensitive defaults; moderation workflows; memory posts with media
|
||||
|
||||
API
|
||||
- Tribute CRUD; permissions; media; moderation
|
||||
|
||||
Acceptance Criteria
|
||||
- Accessibility parity; content controls; privacy defaults
|
||||
|
||||
17
openspec/specs/index.md
Normal file
17
openspec/specs/index.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Specs Index
|
||||
|
||||
This index lists accepted/implemented specs and their current status. Drafts live under `openspec/changes/` until approved.
|
||||
|
||||
- Architecture & APIs — `openspec/specs/architecture.md`
|
||||
- Accessibility — `openspec/specs/accessibility.md`
|
||||
- Privacy & Compliance — `openspec/specs/privacy-compliance.md`
|
||||
- Data Model — `openspec/specs/data-model.md`
|
||||
- Community Forum — `openspec/specs/feature-forum.md`
|
||||
- Profiles — `openspec/specs/feature-profiles.md`
|
||||
- Blog (internal + Substack) — `openspec/specs/feature-blog.md`
|
||||
- Resources (public + members) — `openspec/specs/feature-resources.md`
|
||||
- Podcast — `openspec/specs/feature-podcast.md`
|
||||
- Tribute/Memorial — `openspec/specs/feature-tribute.md`
|
||||
- Merch Store — `openspec/specs/feature-merch.md`
|
||||
- Wix Migration — `openspec/specs/migration-wix.md`
|
||||
|
||||
28
openspec/specs/migration-wix.md
Normal file
28
openspec/specs/migration-wix.md
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Migration: Wix → Community Hub
|
||||
|
||||
Status: draft
|
||||
Owners: Data, Content
|
||||
|
||||
Scope
|
||||
- Inventory existing Wix content and data; define export, mapping, transform, validate, and import steps.
|
||||
|
||||
Data sources
|
||||
- Pages, blog posts, media, members, products (if applicable), forms/submissions.
|
||||
|
||||
Mapping template
|
||||
- Source → Target entity
|
||||
- Field mapping with transforms
|
||||
- Data class (Public/PII/PHI)
|
||||
- Retention policy
|
||||
- Notes
|
||||
|
||||
Process
|
||||
1) Export: obtain Wix exports (CSV/JSON/API) and media dumps
|
||||
2) Transform: normalize slugs, HTML → markdown where needed, sanitize
|
||||
3) Validate: dry‑run import, link integrity checks, accessibility checks on content
|
||||
4) Import: staged, idempotent jobs; audit logs
|
||||
5) Verify: sampling and spot checks; stakeholder sign‑off
|
||||
|
||||
Rollback
|
||||
- Keep original exports; implement reversible migrations; track IDs and redirects
|
||||
|
||||
26
openspec/specs/privacy-compliance.md
Normal file
26
openspec/specs/privacy-compliance.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Privacy & Compliance Spec
|
||||
|
||||
Status: draft
|
||||
Owners: Compliance, Security
|
||||
|
||||
Scope
|
||||
- GDPR: data subject rights, consent, DSR workflows, data minimization.
|
||||
- HIPAA: PHI handling, access controls, audit logging, BAAs, breach response.
|
||||
|
||||
Data classes
|
||||
- Public, PII, PHI — document per‑field classification in `data-model.md`.
|
||||
|
||||
Controls
|
||||
- Encryption in transit (TLS 1.3) and at rest (AES‑256). Key mgmt with rotation.
|
||||
- RBAC/ABAC for sensitive actions; least privilege; admin action audit.
|
||||
- Logging with redaction; no PHI/PII in logs/traces.
|
||||
|
||||
DSR & retention
|
||||
- Defined SLAs and automated workflows for export/delete; retention policies per entity.
|
||||
|
||||
3rd‑party
|
||||
- Subprocessors inventory; data flow diagrams; DPAs/BAAs tracked.
|
||||
|
||||
Validation
|
||||
- Privacy & security review is a gate on every proposal that touches user data.
|
||||
|
||||
67
openspec/templates/proposal-template.md
Normal file
67
openspec/templates/proposal-template.md
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
# Proposal: <Concise Title>
|
||||
|
||||
Status: draft
|
||||
Authors: <names/handles>
|
||||
Owners: <approvers/maintainers>
|
||||
Created: <yyyy-mm-dd>
|
||||
Scope: spec|infra|policy|process
|
||||
Related: <links to issues/PRs/specs>
|
||||
|
||||
Summary
|
||||
- One paragraph that states the problem, the audience, and the outcome.
|
||||
|
||||
Motivation
|
||||
- Why this matters to our community (especially those with chronic/terminal illness). Link data or feedback.
|
||||
|
||||
Goals / Non‑Goals
|
||||
- Goals: …
|
||||
- Non‑Goals: …
|
||||
|
||||
User Stories
|
||||
- As a <role>, I want … so that …
|
||||
|
||||
Requirements
|
||||
- Functional: …
|
||||
- Accessibility: WCAG 2.2 AA+ requirements …
|
||||
- Privacy & Compliance: PHI/PII boundaries, HIPAA/GDPR notes …
|
||||
- Performance/SLOs: …
|
||||
|
||||
Architecture & Design
|
||||
- System overview and component boundaries
|
||||
- Data model updates (ERD snippet or tables)
|
||||
- API design (OpenAPI excerpt or endpoints)
|
||||
- Feature flags / configuration
|
||||
|
||||
Security & Threat Model
|
||||
- Trust boundaries, principal actions, abuse cases, mitigations
|
||||
|
||||
Observability & Telemetry
|
||||
- Logs/metrics/traces; PII/PHI handling policy
|
||||
|
||||
Migration / Rollout Plan
|
||||
- Data migration steps, backfills, dry‑run plan
|
||||
- Rollout stages, monitoring, rollback
|
||||
|
||||
Test Plan
|
||||
- Unit, integration, E2E, accessibility checks
|
||||
|
||||
Risks & Mitigations
|
||||
- …
|
||||
|
||||
Alternatives Considered
|
||||
- … and why not chosen
|
||||
|
||||
Work Breakdown
|
||||
- Milestones and tasks with owners
|
||||
|
||||
Acceptance Criteria
|
||||
- Checkable criteria that define done
|
||||
|
||||
Open Questions
|
||||
- …
|
||||
|
||||
Slash Commands
|
||||
- `/review areas=accessibility,compliance,security,mobile,web,backend`
|
||||
- `/apply spec=openspec/specs/<target-file>.md` once approved
|
||||
- `/archive link=<PR>` after merge
|
||||
|
||||
4
packages/README.md
Normal file
4
packages/README.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# Packages (placeholders)
|
||||
|
||||
Shared libraries (design system, API SDK, validation, analytics wrappers, etc.) will live here, proposed and added via OpenSpec changes.
|
||||
|
||||
Loading…
Add table
Reference in a new issue