@appsforgood/next-supabase-kit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BEST_PRACTICE_EVIDENCE.md +45 -0
- package/CHANGELOG.md +44 -0
- package/CODE_OF_CONDUCT.md +26 -0
- package/CONTRIBUTING.md +48 -0
- package/DOGFOOD.md +121 -0
- package/GOVERNANCE.md +45 -0
- package/LICENSE +21 -0
- package/README.md +251 -0
- package/REPOSITORY_SETTINGS.md +70 -0
- package/RESEARCH_CITATION_POLICY.md +26 -0
- package/SECURITY.md +29 -0
- package/SUPPLY_CHAIN.md +55 -0
- package/SUPPORT.md +28 -0
- package/UPGRADE.md +77 -0
- package/agents/deployment-observability-engineer.md +13 -0
- package/agents/docs-maintainer.md +17 -0
- package/agents/frontend-design-lead.md +22 -0
- package/agents/lead-architect.md +25 -0
- package/agents/marketing-copy-lead.md +20 -0
- package/agents/nextjs-engineer.md +20 -0
- package/agents/planner.md +20 -0
- package/agents/qa-engineer.md +19 -0
- package/agents/research-analyst.md +13 -0
- package/agents/security-reviewer.md +16 -0
- package/agents/supabase-postgres-engineer.md +19 -0
- package/assistant-adapters/README.md +28 -0
- package/assistant-adapters/claude-code-subagents.md +37 -0
- package/assistant-adapters/codex-agents.md +35 -0
- package/assistant-adapters/cursor-agent-kit.mdc +30 -0
- package/assistant-adapters/github-copilot-instructions.md +35 -0
- package/assistant-adapters/github-next-supabase.instructions.md +28 -0
- package/assistant-adapters/model-selection/claude-code-subagents-with-models.md +32 -0
- package/assistant-adapters/model-selection/codex-config.example.toml +29 -0
- package/assistant-adapters/model-selection/cursor-model-selection.mdc +24 -0
- package/assistant-adapters/model-selection/github-copilot-model-selection.md +20 -0
- package/checklists/accessibility.md +12 -0
- package/checklists/agent-council.md +13 -0
- package/checklists/brand-content.md +15 -0
- package/checklists/deployment.md +10 -0
- package/checklists/design-critique.md +13 -0
- package/checklists/frontend-distinctiveness.md +12 -0
- package/checklists/frontend-product-quality.md +13 -0
- package/checklists/frontend-quality.md +20 -0
- package/checklists/marketing-copy.md +11 -0
- package/checklists/owasp.md +12 -0
- package/checklists/rls.md +10 -0
- package/checklists/testing.md +12 -0
- package/checklists/upgrade.md +13 -0
- package/checklists/visual-regression.md +11 -0
- package/design-adapters/claude-design.prompt.md +27 -0
- package/design-adapters/figma.prompt.md +18 -0
- package/design-adapters/google-stitch.prompt.md +36 -0
- package/design-adapters/human-designer-brief.prompt.md +36 -0
- package/design-briefs/admin-dashboard.md +21 -0
- package/design-briefs/ai-workflow-product.md +25 -0
- package/design-briefs/community-social.md +26 -0
- package/design-briefs/content-app.md +21 -0
- package/design-briefs/ecommerce.md +25 -0
- package/design-briefs/education-course.md +25 -0
- package/design-briefs/marketplace.md +21 -0
- package/design-briefs/portfolio-venue.md +25 -0
- package/design-briefs/saas.md +21 -0
- package/design-briefs/tool.md +21 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3521 -0
- package/dist/index.js.map +1 -0
- package/examples/next-supabase-installed/.agent-kit/agent-roster.json +228 -0
- package/examples/next-supabase-installed/.agent-kit/manifest.json +58 -0
- package/examples/next-supabase-installed/.agent-kit/model-routing.json +164 -0
- package/examples/next-supabase-installed/.agent-kit/overrides.json +9 -0
- package/examples/next-supabase-installed/README.md +15 -0
- package/examples/next-supabase-installed/audit-output.json +336 -0
- package/examples/next-supabase-installed/tree.txt +38 -0
- package/model-routing/default-model-routing.json +164 -0
- package/package.json +98 -0
- package/profiles/admin-app.md +17 -0
- package/profiles/content-app.md +17 -0
- package/profiles/marketplace.md +17 -0
- package/profiles/saas.md +17 -0
- package/profiles/stack-next-firebase.md +25 -0
- package/profiles/stack-next-postgres.md +24 -0
- package/profiles/stack-remix-supabase.md +24 -0
- package/prompts/audit-project-setup.md +28 -0
- package/prompts/brand-content-intake.md +17 -0
- package/prompts/copy-review.md +15 -0
- package/prompts/council-session-review.md +17 -0
- package/prompts/creative-direction-matrix.md +22 -0
- package/prompts/design-critique-gate.md +28 -0
- package/prompts/docs-update.md +16 -0
- package/prompts/frontend-design-review.md +29 -0
- package/prompts/frontend-distinctiveness-benchmark.md +32 -0
- package/prompts/frontend-product-quality-scorecard.md +35 -0
- package/prompts/implement-feature.md +14 -0
- package/prompts/migration-review.md +14 -0
- package/prompts/screenshot-review.md +27 -0
- package/prompts/security-review.md +17 -0
- package/prompts/upgrade-review.md +18 -0
- package/prompts/visual-qa-plan.md +16 -0
- package/research/proposed-updates.md +70 -0
- package/research/scan-config.json +261 -0
- package/research/scan-plan.md +24 -0
- package/research/summaries/.gitkeep +1 -0
- package/research/summaries/agent-workflow-patterns.md +37 -0
- package/research/summaries/creative-design-patterns.md +38 -0
- package/research/summaries/design-critique-patterns.md +34 -0
- package/research/summaries/docs-and-agent-patterns.md +64 -0
- package/research/summaries/dogfood-adoption-patterns.md +33 -0
- package/research/summaries/frontend-design-patterns.md +64 -0
- package/research/summaries/frontend-distinctiveness-benchmark-patterns.md +38 -0
- package/research/summaries/frontend-product-quality-rubric-patterns.md +37 -0
- package/research/summaries/maturity-model-patterns.md +29 -0
- package/research/summaries/nextjs-patterns.md +65 -0
- package/research/summaries/repo-health-patterns.md +41 -0
- package/research/summaries/scan-overview.md +46 -0
- package/research/summaries/security-patterns.md +64 -0
- package/research/summaries/supabase-rls-patterns.md +54 -0
- package/research/summaries/supply-chain-patterns.md +38 -0
- package/research/summaries/testing-patterns.md +63 -0
- package/research/summaries/upgrade-lifecycle-patterns.md +26 -0
- package/research/summaries/visual-qa-patterns.md +39 -0
- package/rosters/next-supabase-default-council.json +228 -0
- package/schemas/agent-roster.schema.json +54 -0
- package/schemas/audit-report.schema.json +50 -0
- package/schemas/correction-rules.schema.json +32 -0
- package/schemas/council-session.schema.json +65 -0
- package/schemas/model-routing.schema.json +72 -0
- package/schemas/project-context.schema.json +94 -0
- package/schemas/session-event.schema.json +46 -0
- package/schemas/studio-session.schema.json +48 -0
- package/skills/accessibility-wcag.md +15 -0
- package/skills/agent-handoff-tracing.md +44 -0
- package/skills/best-practice-maturity-review.md +26 -0
- package/skills/content-first-design.md +50 -0
- package/skills/conversion-copywriting.md +38 -0
- package/skills/deployment-observability.md +14 -0
- package/skills/docs-maintainer.md +19 -0
- package/skills/frontend-design-system.md +68 -0
- package/skills/frontend-distinctiveness-benchmark.md +40 -0
- package/skills/frontend-product-quality-rubric.md +59 -0
- package/skills/landing-page-copy.md +29 -0
- package/skills/nextjs-app-router.md +18 -0
- package/skills/onboarding-empty-state-copy.md +37 -0
- package/skills/owasp-security-review.md +19 -0
- package/skills/planning-council.md +21 -0
- package/skills/positioning-messaging.md +42 -0
- package/skills/postgres-migrations.md +14 -0
- package/skills/product-voice-tone.md +35 -0
- package/skills/reference-led-design-critique.md +48 -0
- package/skills/supabase-auth-rls.md +20 -0
- package/skills/testing-qa.md +15 -0
- package/skills/upgrade-maintenance.md +32 -0
- package/skills/visual-regression-qa.md +42 -0
- package/templates/next-supabase/AGENTS.md +138 -0
- package/templates/next-supabase/AGENT_ROSTER.md +98 -0
- package/templates/next-supabase/ASSISTANT_ADAPTERS.md +82 -0
- package/templates/next-supabase/COUNCIL.md +54 -0
- package/templates/next-supabase/DECISIONS.md +45 -0
- package/templates/next-supabase/DEPLOYMENT.md +45 -0
- package/templates/next-supabase/DESIGN.md +171 -0
- package/templates/next-supabase/DOCS.md +62 -0
- package/templates/next-supabase/MESSAGING.md +81 -0
- package/templates/next-supabase/MODEL_ROUTING.md +109 -0
- package/templates/next-supabase/QUALITY_GATES.md +87 -0
- package/templates/next-supabase/SECURITY.md +54 -0
- package/templates/next-supabase/SKILLS.md +221 -0
- package/templates/next-supabase/SPEC.md +114 -0
- package/templates/next-supabase/STYLE_GUIDE.md +104 -0
- package/templates/next-supabase/TESTING.md +68 -0
- package/templates/next-supabase/UPGRADE.md +59 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Design Direction
|
|
2
|
+
|
|
3
|
+
This file is the persistent visual identity and content-direction contract for coding agents, design agents, and human reviewers.
|
|
4
|
+
|
|
5
|
+
Use it before designing or changing any user-facing screen. If the project already has a mature brand or design system, keep that system and record the override in `.agent-kit/overrides.json`.
|
|
6
|
+
|
|
7
|
+
## Brand And Content Inputs
|
|
8
|
+
|
|
9
|
+
Define the real product context before UI work starts.
|
|
10
|
+
|
|
11
|
+
| Area | Required Decision |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| Product category | SaaS, admin, marketplace, content, tool, ecommerce, portfolio, venue, education, community, AI workflow, or other |
|
|
14
|
+
| Primary audience | Who uses the product and what they already understand |
|
|
15
|
+
| User needs | Jobs users are trying to complete, written in the user's language |
|
|
16
|
+
| Content inventory | Real nouns, labels, data types, records, assets, and domain terms available to the UI |
|
|
17
|
+
| Brand personality | 3-5 traits that should be visible in layout, typography, imagery, and interaction tone |
|
|
18
|
+
| Visual constraints | Existing logo, colors, fonts, imagery, accessibility constraints, and platform conventions |
|
|
19
|
+
| Competitive context | Category references to learn from and avoid copying |
|
|
20
|
+
| Non-goals | Visual tropes, copy patterns, or interaction styles that must not be used |
|
|
21
|
+
|
|
22
|
+
## Reference Set And Anti-References
|
|
23
|
+
|
|
24
|
+
Use references for learning, not copying. Record what the project should absorb and what it must avoid.
|
|
25
|
+
|
|
26
|
+
| Reference | What To Learn | What Not To Copy | Source-Safety Notes |
|
|
27
|
+
| --- | --- | --- | --- |
|
|
28
|
+
| Reference A | TBD | TBD | No brand marks, protected layout signatures, proprietary assets, or exact copy |
|
|
29
|
+
| Reference B | TBD | TBD | TBD |
|
|
30
|
+
| Reference C | Optional | Optional | Optional |
|
|
31
|
+
|
|
32
|
+
Anti-references:
|
|
33
|
+
|
|
34
|
+
- TBD: pattern, palette, layout, copy, or interaction style to avoid.
|
|
35
|
+
- TBD: another explicit non-goal.
|
|
36
|
+
|
|
37
|
+
## Creative Direction
|
|
38
|
+
|
|
39
|
+
Before implementation, produce at least two distinct visual directions and choose one.
|
|
40
|
+
|
|
41
|
+
| Direction | What Makes It Distinct | Best For | Risks |
|
|
42
|
+
| --- | --- | --- | --- |
|
|
43
|
+
| Direction A | TBD | TBD | TBD |
|
|
44
|
+
| Direction B | TBD | TBD | TBD |
|
|
45
|
+
| Direction C | Optional | Optional | Optional |
|
|
46
|
+
|
|
47
|
+
Chosen direction:
|
|
48
|
+
|
|
49
|
+
- Name: TBD
|
|
50
|
+
- Rationale: TBD
|
|
51
|
+
- Rejected alternatives: TBD
|
|
52
|
+
|
|
53
|
+
## Design Tokens
|
|
54
|
+
|
|
55
|
+
Tokens are the normative values. Prose explains how to apply them.
|
|
56
|
+
|
|
57
|
+
| Token Area | Required Decisions |
|
|
58
|
+
| --- | --- |
|
|
59
|
+
| Color | Semantic colors, surface colors, text colors, state colors, contrast notes |
|
|
60
|
+
| Typography | Font family, scale, weights, line height, heading/body relationship |
|
|
61
|
+
| Spacing | Base unit, dense/admin spacing, section spacing, responsive spacing |
|
|
62
|
+
| Radius | Component radius defaults and exceptions |
|
|
63
|
+
| Motion | Duration, easing, reduced-motion behavior |
|
|
64
|
+
| Shadow/Depth | When elevation is allowed and when it is prohibited |
|
|
65
|
+
| Imagery | Product, place, person, object, or workflow asset rules |
|
|
66
|
+
|
|
67
|
+
## Information Architecture
|
|
68
|
+
|
|
69
|
+
The first screen must show the real product, task, object, or workflow.
|
|
70
|
+
|
|
71
|
+
Document:
|
|
72
|
+
|
|
73
|
+
- Primary workflow.
|
|
74
|
+
- Secondary workflows.
|
|
75
|
+
- Navigation model.
|
|
76
|
+
- Data hierarchy.
|
|
77
|
+
- Empty, loading, error, disabled, success, and permission-denied states.
|
|
78
|
+
- Mobile-first layout changes.
|
|
79
|
+
|
|
80
|
+
## Design Critique Gate
|
|
81
|
+
|
|
82
|
+
Run `.agent-kit/prompts/design-critique-gate.md` before accepting significant frontend work.
|
|
83
|
+
|
|
84
|
+
| Area | Verdict |
|
|
85
|
+
| --- | --- |
|
|
86
|
+
| First-screen specificity | TBD |
|
|
87
|
+
| Product/content fit | TBD |
|
|
88
|
+
| Distinctiveness | Weak, adequate, or strong |
|
|
89
|
+
| Generic AI-site risk | TBD |
|
|
90
|
+
| Accessibility risk | TBD |
|
|
91
|
+
| Required changes | TBD |
|
|
92
|
+
|
|
93
|
+
## Frontend Distinctiveness Benchmark
|
|
94
|
+
|
|
95
|
+
Run `.agent-kit/prompts/frontend-distinctiveness-benchmark.md` before accepting significant frontend work. This benchmark proves the UI is specific to the product, not just polished.
|
|
96
|
+
|
|
97
|
+
| Area | Required Evidence |
|
|
98
|
+
| --- | --- |
|
|
99
|
+
| First-screen proof | The first viewport shows the real product object, task, workflow, content, or decision |
|
|
100
|
+
| Content fingerprint | Product nouns, labels, data shapes, records, actions, edge cases, and domain terms visible in the UI |
|
|
101
|
+
| Reference benchmark | 3-5 references with lessons to learn and 2-3 anti-references with tropes to avoid |
|
|
102
|
+
| Creative divergence | At least two plausible directions compared before implementation |
|
|
103
|
+
| Asset provenance | Real, generated, licensed, and placeholder assets identified with usage constraints |
|
|
104
|
+
| State proof | Loading, empty, error, disabled, success, permission, and focus states captured where relevant |
|
|
105
|
+
| Visual QA proof | Desktop, mobile, and high-risk state evidence reviewed for the change risk |
|
|
106
|
+
|
|
107
|
+
Distinctiveness verdict:
|
|
108
|
+
|
|
109
|
+
- Verdict: Reject, adequate, or distinctive
|
|
110
|
+
- Generic-AI-site risk: TBD
|
|
111
|
+
- Source-safety risks: TBD
|
|
112
|
+
- Required changes before acceptance: TBD
|
|
113
|
+
|
|
114
|
+
## Product Quality Scorecard
|
|
115
|
+
|
|
116
|
+
Run `.agent-kit/prompts/frontend-product-quality-scorecard.md` before accepting significant frontend work. Score each dimension as `0`, `1`, or `2`.
|
|
117
|
+
|
|
118
|
+
| Dimension | Score | Evidence |
|
|
119
|
+
| --- | --- | --- |
|
|
120
|
+
| User/task fit | TBD | Does the first screen show the real product task, object, workflow, or content? |
|
|
121
|
+
| Content specificity | TBD | Are real nouns, labels, data shapes, assets, and domain terms visible? |
|
|
122
|
+
| Visual identity | TBD | Does the visual direction belong to this product instead of a generic category? |
|
|
123
|
+
| Information architecture | TBD | Are primary and secondary workflows clear and scannable? |
|
|
124
|
+
| Component states | TBD | Are loading, empty, error, disabled, success, permission, and focus states handled where relevant? |
|
|
125
|
+
| Accessibility and interaction | TBD | Are keyboard path, focus, contrast, labels, motion, and error feedback covered? |
|
|
126
|
+
| Source safety | TBD | Did references teach decisions without copied brand marks, layouts, copy, assets, or visual signatures? |
|
|
127
|
+
|
|
128
|
+
Total score:
|
|
129
|
+
|
|
130
|
+
- Score: TBD / 14
|
|
131
|
+
- Verdict: Reject, adequate, or strong
|
|
132
|
+
- Critical zeroes: TBD
|
|
133
|
+
- Required changes before acceptance: TBD
|
|
134
|
+
|
|
135
|
+
Acceptance threshold:
|
|
136
|
+
|
|
137
|
+
- Reject if user/task fit, content specificity, accessibility and interaction, or source safety scores `0`.
|
|
138
|
+
- Reject if total score is below `10`.
|
|
139
|
+
- Treat `10-11` as adequate and `12-14` as strong.
|
|
140
|
+
- Best-practice frontend evidence requires at least `12`, no critical zeroes, desktop/mobile review, and visual QA evidence for the change risk.
|
|
141
|
+
|
|
142
|
+
## Component Direction
|
|
143
|
+
|
|
144
|
+
List product-specific components and the states they require.
|
|
145
|
+
|
|
146
|
+
| Component | Purpose | States | Accessibility Notes |
|
|
147
|
+
| --- | --- | --- | --- |
|
|
148
|
+
| Primary action surface | TBD | Default, hover, focus, disabled, loading, success, error | TBD |
|
|
149
|
+
|
|
150
|
+
## Asset Rules
|
|
151
|
+
|
|
152
|
+
- Use real product, object, place, person, gameplay, workflow, or generated imagery when visual inspection matters.
|
|
153
|
+
- Avoid generic abstract gradients, vague device mockups, fake metrics, and stock-like decoration.
|
|
154
|
+
- If no assets exist, document the missing asset need and use a purposeful placeholder with clear dimensions.
|
|
155
|
+
- Keep image alt text specific to the content or empty only when the image is decorative.
|
|
156
|
+
|
|
157
|
+
## Acceptance Evidence
|
|
158
|
+
|
|
159
|
+
Frontend work is not accepted until the following evidence exists:
|
|
160
|
+
|
|
161
|
+
- Brand and content inputs are filled or explicitly marked as not applicable.
|
|
162
|
+
- Reference set, anti-references, and source-safety notes are filled.
|
|
163
|
+
- A creative-direction matrix was considered.
|
|
164
|
+
- The chosen direction is reflected in tokens, layout, copy, and imagery.
|
|
165
|
+
- A design critique verdict records product fit, distinctiveness, generic-risk, and required changes.
|
|
166
|
+
- A frontend distinctiveness benchmark records first-screen proof, content fingerprint, reference benchmark, creative divergence, asset provenance, state proof, visual QA proof, generic-risk, and source-safety risks.
|
|
167
|
+
- A product-quality scorecard records user/task fit, content specificity, visual identity, information architecture, component states, accessibility and interaction, source safety, total score, and verdict.
|
|
168
|
+
- Desktop and mobile screenshots were reviewed.
|
|
169
|
+
- Accessibility risks and component states were reviewed.
|
|
170
|
+
- Visual QA tier is documented in `TESTING.md` for high-risk UI changes.
|
|
171
|
+
- Baseline visual changes are approved intentionally when visual regression tooling exists.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Developer Docs
|
|
2
|
+
|
|
3
|
+
## Setup
|
|
4
|
+
|
|
5
|
+
Document local setup:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install
|
|
9
|
+
npm run dev
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Add required environment variables in `.env.example`. Never place real secrets in docs.
|
|
13
|
+
|
|
14
|
+
## Architecture Overview
|
|
15
|
+
|
|
16
|
+
Document:
|
|
17
|
+
|
|
18
|
+
- Agent council routing in `.agent-kit/agent-roster.json`
|
|
19
|
+
- Assistant activation surfaces in `ASSISTANT_ADAPTERS.md`
|
|
20
|
+
- Model profile routing in `MODEL_ROUTING.md` and `.agent-kit/model-routing.json`
|
|
21
|
+
- Council-session evidence in `COUNCIL.md`
|
|
22
|
+
- Agent, council-session, model-routing, and audit-report schemas in `.agent-kit/schemas/`
|
|
23
|
+
- Quality gate maturity model in `QUALITY_GATES.md`
|
|
24
|
+
- Upgrade lifecycle in `UPGRADE.md`
|
|
25
|
+
- Design identity and content-direction contract in `DESIGN.md`
|
|
26
|
+
- Messaging, positioning, proof, objections, voice, and CTA contract in `MESSAGING.md`
|
|
27
|
+
- Application routes
|
|
28
|
+
- Shared components
|
|
29
|
+
- Server-only modules
|
|
30
|
+
- Supabase client creation
|
|
31
|
+
- Auth middleware
|
|
32
|
+
- Migrations and seed data
|
|
33
|
+
- Test setup
|
|
34
|
+
|
|
35
|
+
## Key Workflows
|
|
36
|
+
|
|
37
|
+
Document primary workflows, including:
|
|
38
|
+
|
|
39
|
+
- Planning and core-change handoffs from `AGENT_ROSTER.md`
|
|
40
|
+
- Tool-specific assistant activation from `ASSISTANT_ADAPTERS.md`
|
|
41
|
+
- Model-selection setup, enforcement status, and limitations from `MODEL_ROUTING.md`
|
|
42
|
+
- Council-session evidence capture from `COUNCIL.md`
|
|
43
|
+
- Upgrade review, conflict handling, migration review, and rollback evidence from `UPGRADE.md`
|
|
44
|
+
- Baseline, strong, and best-practice evidence review from `QUALITY_GATES.md`
|
|
45
|
+
- Brand/content intake and creative-direction selection before frontend implementation
|
|
46
|
+
- Reference-led design critique, anti-references, source-safety notes, and distinctiveness verdict from `DESIGN.md`
|
|
47
|
+
- Frontend product-quality scorecard from `DESIGN.md`
|
|
48
|
+
- Marketing-copy workflow, proof mapping, objection handling, and CTA hierarchy from `MESSAGING.md`
|
|
49
|
+
- Visual QA tier and baseline approval workflow for high-risk UI changes
|
|
50
|
+
- Sign up, login, logout, and session refresh
|
|
51
|
+
- Main user workflow
|
|
52
|
+
- Admin workflow
|
|
53
|
+
- Data creation and update workflow
|
|
54
|
+
- Deployment workflow
|
|
55
|
+
|
|
56
|
+
## Integration Points
|
|
57
|
+
|
|
58
|
+
Document external APIs, webhooks, storage buckets, cron jobs, email providers, analytics, and monitoring.
|
|
59
|
+
|
|
60
|
+
## Troubleshooting
|
|
61
|
+
|
|
62
|
+
Record known issues, expected logs, and operational checks.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Messaging And Copy
|
|
2
|
+
|
|
3
|
+
This file is the persistent positioning, value proposition, voice, and copy-evidence contract for agents and reviewers.
|
|
4
|
+
|
|
5
|
+
Use it before writing or changing public-facing pages, onboarding, empty states, pricing, upgrade prompts, CTAs, lifecycle emails, notifications, or conversion-critical UX copy.
|
|
6
|
+
|
|
7
|
+
## Discovery Questions
|
|
8
|
+
|
|
9
|
+
Answer these before final copy is accepted. If an answer is unknown, mark it as `TBD` and treat the copy as provisional.
|
|
10
|
+
|
|
11
|
+
| Question | Current Answer | Evidence |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| Who is the primary audience? | TBD | User research, customer notes, analytics, brief, or stakeholder input |
|
|
14
|
+
| What painful, expensive, slow, risky, or annoying problem do they need solved? | TBD | Customer language, support notes, interviews, or domain research |
|
|
15
|
+
| What outcome do they want? | TBD | Success metric, workflow completion, time saved, risk reduced, revenue gained, or quality improved |
|
|
16
|
+
| What alternatives do they use today? | TBD | Competitors, spreadsheets, manual work, agencies, internal tools, or doing nothing |
|
|
17
|
+
| Why is this product meaningfully different? | TBD | Feature, workflow, data, quality, speed, trust, price, integration, or niche focus |
|
|
18
|
+
| What proof supports the claim? | TBD | Demo, shipped feature, customer quote, case study, benchmark, integration, certification, or domain expertise |
|
|
19
|
+
| What objections could stop signup, activation, or purchase? | TBD | Trust, cost, time, migration, privacy, compliance, risk, support, or switching cost |
|
|
20
|
+
| What action should the user take next? | TBD | Signup, book demo, start workflow, invite team, connect account, import data, or contact support |
|
|
21
|
+
|
|
22
|
+
## Positioning
|
|
23
|
+
|
|
24
|
+
One-sentence positioning statement:
|
|
25
|
+
|
|
26
|
+
> For `TBD audience` who need `TBD outcome`, this product is a `TBD category` that `TBD differentiator`, unlike `TBD alternative`.
|
|
27
|
+
|
|
28
|
+
Primary value proposition:
|
|
29
|
+
|
|
30
|
+
- TBD
|
|
31
|
+
|
|
32
|
+
Secondary value propositions:
|
|
33
|
+
|
|
34
|
+
- TBD
|
|
35
|
+
- TBD
|
|
36
|
+
|
|
37
|
+
Non-goals and claims to avoid:
|
|
38
|
+
|
|
39
|
+
- TBD
|
|
40
|
+
|
|
41
|
+
## Proof And Objections
|
|
42
|
+
|
|
43
|
+
| Claim | Proof Required | Current Proof | Status |
|
|
44
|
+
| --- | --- | --- | --- |
|
|
45
|
+
| TBD | TBD | TBD | Missing, partial, or proven |
|
|
46
|
+
|
|
47
|
+
| Objection | Response | Evidence Or Product Support |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| TBD | TBD | TBD |
|
|
50
|
+
|
|
51
|
+
## Voice And Tone
|
|
52
|
+
|
|
53
|
+
| Area | Decision |
|
|
54
|
+
| --- | --- |
|
|
55
|
+
| Voice traits | 3-5 traits, such as direct, expert, calm, playful, premium, practical, editorial, or technical |
|
|
56
|
+
| Words to use | Product nouns, customer terms, category language, and approved phrases |
|
|
57
|
+
| Words to avoid | Vague SaaS claims, unsupported AI claims, hype, jargon, or legally risky terms |
|
|
58
|
+
| Error tone | Clear cause, useful recovery, no blame |
|
|
59
|
+
| Security/privacy tone | Specific, factual, no invented guarantees |
|
|
60
|
+
| Pricing/upgrade tone | Transparent, no hidden conditions or forced urgency |
|
|
61
|
+
|
|
62
|
+
## Page And Flow Copy Inventory
|
|
63
|
+
|
|
64
|
+
| Surface | Goal | Primary Message | Primary CTA | Secondary CTA | Proof | Objections |
|
|
65
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
66
|
+
| Homepage hero | TBD | TBD | TBD | TBD | TBD | TBD |
|
|
67
|
+
| Signup or onboarding | TBD | TBD | TBD | TBD | TBD | TBD |
|
|
68
|
+
| Empty state | TBD | TBD | TBD | TBD | TBD | TBD |
|
|
69
|
+
| Pricing or upgrade | Optional | Optional | Optional | Optional | Optional | Optional |
|
|
70
|
+
|
|
71
|
+
## Acceptance Evidence
|
|
72
|
+
|
|
73
|
+
Copy work is not accepted until:
|
|
74
|
+
|
|
75
|
+
- Discovery questions are answered or explicitly marked unknown.
|
|
76
|
+
- Audience, pain, outcome, differentiator, proof, objections, voice, and conversion goal are documented.
|
|
77
|
+
- Claims are tied to proof or marked as assumptions.
|
|
78
|
+
- CTA hierarchy has one primary action and clear secondary actions.
|
|
79
|
+
- Onboarding, empty, error, permission, and upgrade copy provides a useful next step.
|
|
80
|
+
- Marketing Copy Lead has handed off public-facing pages to Frontend Design Lead for layout and hierarchy review.
|
|
81
|
+
- Risky claims are reviewed before release.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Model Routing
|
|
2
|
+
|
|
3
|
+
Use this file to choose the right model profile for each agent and to record how the active AI coding tools apply those choices.
|
|
4
|
+
|
|
5
|
+
Canonical source of truth:
|
|
6
|
+
|
|
7
|
+
- `.agent-kit/model-routing.json`
|
|
8
|
+
- `.agent-kit/schemas/model-routing.schema.json`
|
|
9
|
+
- `.agent-kit/agent-roster.json`
|
|
10
|
+
- `ASSISTANT_ADAPTERS.md`
|
|
11
|
+
|
|
12
|
+
## Policy
|
|
13
|
+
|
|
14
|
+
- Keep role behavior in `AGENTS.md`, `AGENT_ROSTER.md`, and `.agent-kit/agent-roster.json`.
|
|
15
|
+
- Keep reusable skills in `SKILLS.md` and `.agent-kit/skills/`.
|
|
16
|
+
- Keep model choice as a dated, reviewable routing layer.
|
|
17
|
+
- Do not store secrets, API keys, billing notes, private model entitlement details, or workspace-only vendor terms in this file.
|
|
18
|
+
- If an IDE cannot enforce per-agent model choice, document the limitation honestly and use the closest manual or advisory setup.
|
|
19
|
+
|
|
20
|
+
## Agent Profiles
|
|
21
|
+
|
|
22
|
+
| Agent | Default profile | Effort | Escalate when |
|
|
23
|
+
| --- | --- | --- | --- |
|
|
24
|
+
| Planner | `balanced-reasoning` | Medium | Scope affects architecture, auth, data, release, or package behavior. |
|
|
25
|
+
| Lead Architect | `deep-reasoning-large-context` | High | Always for core-change council review. |
|
|
26
|
+
| Supabase/Postgres Engineer | `deep-reasoning-large-context` | High | Schema, RLS, migration order, rollback, or authorization impact exists. |
|
|
27
|
+
| Next.js Engineer | `coding-large-context` | Medium | Server/client boundary, caching, auth, or mutation behavior is uncertain. |
|
|
28
|
+
| Frontend Design Lead | `creative-vision-large-context` | High | Significant UI, screenshots, references, content strategy, or visual QA is involved. |
|
|
29
|
+
| Marketing Copy Lead | `creative-vision-large-context` | High | Positioning, value proposition, conversion copy, voice/tone, proof review, or public-facing copy handoff is involved. |
|
|
30
|
+
| Security Reviewer | `deep-reasoning-large-context` | High | OWASP, IDOR, SSRF, injection, broken auth, dependency, secret, or release risk exists. |
|
|
31
|
+
| QA Engineer | `balanced-reasoning` | Medium | Flaky tests, concurrency, auth flows, visual regression, or hard-to-reproduce bugs exist. |
|
|
32
|
+
| Documentation Maintainer | `fast-targeted` | Low | Docs encode architecture, migrations, security, or release decisions. |
|
|
33
|
+
| Deployment/Observability Engineer | `fast-targeted` | Low | Production release, rollback, env vars, logs, or incident review is involved. |
|
|
34
|
+
|
|
35
|
+
## Tool Setup
|
|
36
|
+
|
|
37
|
+
| Tool | Instruction surface | Model-selection status | Enforcement | Evidence |
|
|
38
|
+
| --- | --- | --- | --- | --- |
|
|
39
|
+
| Codex | `AGENTS.md`, `.codex/config.toml`, optional `.codex/agents/*.toml` | Unverified | Partial | Record date, owner, command/session, and active model settings. |
|
|
40
|
+
| Claude Code | `CLAUDE.md`, `.claude/agents/*.md` | Unverified | Partial | Record date, owner, subagent files, and model frontmatter behavior. |
|
|
41
|
+
| Cursor | `.cursor/rules/*.mdc` | Unverified | Advisory | Record date, owner, model picker/team setting, and loaded rule evidence. |
|
|
42
|
+
| GitHub Copilot | `.github/copilot-instructions.md`, `.github/instructions/*.instructions.md` | Unverified | Advisory | Record date, owner, selected chat/coding-agent model, and loaded instruction evidence. |
|
|
43
|
+
|
|
44
|
+
## June 2026 Commented Recommendations
|
|
45
|
+
|
|
46
|
+
These are setup comments, not permanent guarantees. Verify against the active IDE and provider docs before enabling.
|
|
47
|
+
|
|
48
|
+
### Codex
|
|
49
|
+
|
|
50
|
+
```toml
|
|
51
|
+
# ~/.codex/config.toml or trusted project .codex/config.toml
|
|
52
|
+
# June 2026 Agent Kit suggestion:
|
|
53
|
+
# model = "gpt-5.5"
|
|
54
|
+
# model_reasoning_effort = "medium"
|
|
55
|
+
#
|
|
56
|
+
# For custom Codex agents, pin only where the role needs it:
|
|
57
|
+
# model = "gpt-5.5"
|
|
58
|
+
# model_reasoning_effort = "high"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Claude Code
|
|
62
|
+
|
|
63
|
+
```md
|
|
64
|
+
---
|
|
65
|
+
name: lead-architect
|
|
66
|
+
description: Use for architecture, cross-layer changes, and core-change council review.
|
|
67
|
+
# June 2026 Agent Kit suggestion:
|
|
68
|
+
# model: opus
|
|
69
|
+
# effort: high
|
|
70
|
+
---
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Cursor
|
|
74
|
+
|
|
75
|
+
```mdc
|
|
76
|
+
---
|
|
77
|
+
description: Agent Kit model-selection reminder.
|
|
78
|
+
alwaysApply: true
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
<!--
|
|
82
|
+
June 2026 Agent Kit suggestion:
|
|
83
|
+
- Use the model picker or team model policy for the active task.
|
|
84
|
+
- Prefer a deep reasoning model for Lead Architect, Security Reviewer, and Supabase/Postgres Engineer.
|
|
85
|
+
- Prefer a fast/balanced coding model for Docs, Deployment, and low-risk QA passes.
|
|
86
|
+
- Cursor rules advise model choice; they should not be treated as hard enforcement.
|
|
87
|
+
-->
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### GitHub Copilot
|
|
91
|
+
|
|
92
|
+
```md
|
|
93
|
+
<!--
|
|
94
|
+
June 2026 Agent Kit suggestion:
|
|
95
|
+
- Select the strongest available model for architecture, security, RLS, and release-risk review.
|
|
96
|
+
- Use a faster model for docs-only or low-risk mechanical changes.
|
|
97
|
+
- Repository instructions advise model choice; Copilot model selection remains tool/user controlled.
|
|
98
|
+
-->
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Acceptance Evidence
|
|
102
|
+
|
|
103
|
+
Before claiming strong or best-practice maturity, record:
|
|
104
|
+
|
|
105
|
+
- Active IDE/tool and version or environment.
|
|
106
|
+
- Model picker or config location.
|
|
107
|
+
- Which agent profiles are enforced, partial, advisory, or manual.
|
|
108
|
+
- Screenshot, command, session transcript, or PR evidence that instructions loaded.
|
|
109
|
+
- Date and owner of the verification.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Quality Gates
|
|
2
|
+
|
|
3
|
+
This file defines the project maturity model. Use it to decide whether a change is merely working, strong enough for normal delivery, or best-practice ready.
|
|
4
|
+
|
|
5
|
+
## Maturity Levels
|
|
6
|
+
|
|
7
|
+
`agent-kit audit --json` reports one readiness verdict:
|
|
8
|
+
|
|
9
|
+
- `needs-setup`: required install or council contract checks are failing.
|
|
10
|
+
- `baseline-setup`: setup is valid, but starter evidence placeholders remain.
|
|
11
|
+
- `needs-improvement`: no blocking failures, but warnings remain.
|
|
12
|
+
- `best-practice-candidate`: static audit found no failures or warnings.
|
|
13
|
+
|
|
14
|
+
Use `agent-kit audit --min-readiness <level>` in CI when the project wants a merge or release threshold. New projects usually start at `baseline-setup`; mature projects should move toward `best-practice-candidate`.
|
|
15
|
+
|
|
16
|
+
### Baseline
|
|
17
|
+
|
|
18
|
+
Baseline means the project is usable and the agent kit can audit it.
|
|
19
|
+
|
|
20
|
+
- `AGENTS.md`, `AGENT_ROSTER.md`, `ASSISTANT_ADAPTERS.md`, `COUNCIL.md`, `SPEC.md`, `DECISIONS.md`, `DOCS.md`, `DESIGN.md`, `MESSAGING.md`, `MODEL_ROUTING.md`, `STYLE_GUIDE.md`, `SECURITY.md`, `TESTING.md`, `DEPLOYMENT.md`, and `UPGRADE.md` exist.
|
|
21
|
+
- `.agent-kit/agent-roster.json`, `.agent-kit/model-routing.json`, and `.agent-kit/schemas/` exist.
|
|
22
|
+
- `.agent-kit/assistant-adapters/` exists.
|
|
23
|
+
- Agent Studio schemas for project context, correction rules, session events, and studio sessions exist when the installed kit version includes them.
|
|
24
|
+
- Planner is the default planning route.
|
|
25
|
+
- Lead Architect reviews core changes.
|
|
26
|
+
- Security Reviewer reviews auth, RLS, dependency, secret, external-call, and release-risk changes.
|
|
27
|
+
- Marketing Copy Lead reviews public-facing or conversion-facing copy, positioning, proof, objections, voice, and CTA hierarchy.
|
|
28
|
+
- QA evidence is recorded before behavior changes are accepted.
|
|
29
|
+
|
|
30
|
+
### Strong
|
|
31
|
+
|
|
32
|
+
Strong means the project is safe for repeated team or agent delivery.
|
|
33
|
+
|
|
34
|
+
- Council sessions record workflow, decision, risk, next handoff, required outputs, and evidence.
|
|
35
|
+
- `.agent-kit/project-context.json` and `.agent-kit/project-context.md` capture product intent, users, workflows, auth/data assumptions, integrations, design direction, quality target, and open questions.
|
|
36
|
+
- Active project and agent corrections are reviewed before implementation and are reflected in future session behavior.
|
|
37
|
+
- Agent Studio sessions render current `index.md` and `transcript.md` files after visible decisions, handoffs, artifacts, corrections, or verification change.
|
|
38
|
+
- Optional static Studio exports are regenerated from local files after session evidence changes and are checked for secret leakage.
|
|
39
|
+
- `ASSISTANT_ADAPTERS.md` records active AI tool surfaces, model-selection status, enforcement level, and verification evidence.
|
|
40
|
+
- `MODEL_ROUTING.md` records active model-selection status, dated recommendations, enforcement limits, and known IDE limitations.
|
|
41
|
+
- `MESSAGING.md` captures audience, pain, desired outcome, alternatives, differentiator, proof, objections, voice, conversion goal, and copy inventory.
|
|
42
|
+
- `SPEC.md` documents affected architecture, behavioral contracts, data model, RLS inventory, and critical workflows.
|
|
43
|
+
- `SECURITY.md` covers OWASP Top 10, Supabase RLS, service-role isolation, secrets, IDOR prevention, dependency risk, and external-call risk.
|
|
44
|
+
- `DESIGN.md` captures audience, user needs, real content, brand constraints, reference set, anti-references, creative direction, design critique verdict, distinctiveness benchmark, product-quality scorecard, design tokens, and visual QA tier.
|
|
45
|
+
- `STYLE_GUIDE.md` defines component patterns, states, responsive behavior, accessibility, and anti-generic AI-site rules.
|
|
46
|
+
- `TESTING.md` defines unit, regression, smoke, visual QA, accessibility, and release checks.
|
|
47
|
+
- `DEPLOYMENT.md` documents environments, migrations, env vars, observability, rollback, and post-release verification.
|
|
48
|
+
- `UPGRADE.md` documents diff/update flow, release notes, migration review, generated types, and rollback evidence.
|
|
49
|
+
|
|
50
|
+
### Best-Practice
|
|
51
|
+
|
|
52
|
+
Best-practice means evidence can survive handoff, release, and later audit.
|
|
53
|
+
|
|
54
|
+
- Every meaningful change maps affected layers: data, business logic, presentation, auth, deployment, docs, and tests.
|
|
55
|
+
- Multi-agent work has local Agent Studio evidence: context loaded, corrections considered, decisions and handoffs recorded, required outputs tracked, artifacts linked, verification captured, and rendered Markdown current.
|
|
56
|
+
- Supabase RLS policies are inventory-backed, least-privilege, and tested for cross-user or cross-tenant access.
|
|
57
|
+
- Production readiness covers Next.js routing/rendering, caching, error boundaries, metadata, accessibility, performance, security headers, and Core Web Vitals evidence.
|
|
58
|
+
- Frontend work starts from brand/content intake, reference-set review, anti-references, and creative-direction options, then proves first-screen proof, content fingerprint, asset provenance, product-quality scorecard, distinctiveness, desktop, mobile, key states, keyboard flow, and visual QA evidence.
|
|
59
|
+
- Public-facing and conversion-facing copy starts from discovery questions, audience, pain, outcome, differentiator, proof, objections, voice/tone, and CTA hierarchy, with unsupported claims marked as assumptions.
|
|
60
|
+
- Test evidence includes the smallest useful unit/regression checks plus critical-path smoke coverage.
|
|
61
|
+
- Release evidence includes install or production smoke, migration order, dependency audit, package or deployment verification, logs, and rollback notes.
|
|
62
|
+
- Repo health includes issue/PR templates, CODEOWNERS, dependency updates, CodeQL or equivalent scanning, dependency review, provenance expectations, support, conduct, and governance.
|
|
63
|
+
- Public or shared package releases use Trusted Publishing or equivalent identity-bound release provenance.
|
|
64
|
+
|
|
65
|
+
## Change Acceptance Matrix
|
|
66
|
+
|
|
67
|
+
| Change Type | Required Council | Required Evidence |
|
|
68
|
+
| --- | --- | --- |
|
|
69
|
+
| Planning or roadmap | Planner, Documentation Maintainer | Updated roadmap or checklist with owner, status, and acceptance evidence |
|
|
70
|
+
| Core architecture | Planner, Lead Architect, QA, Docs | Affected-layer map, preserved contracts, tests, updated `SPEC.md` or `DECISIONS.md` |
|
|
71
|
+
| Supabase/Auth/RLS | Lead Architect, Supabase/Postgres Engineer, Security Reviewer, QA | Migration notes, RLS inventory, negative authorization test, rollback risk |
|
|
72
|
+
| Frontend/UI | Frontend Design Lead, QA, Docs | Brand/content intake, reference-set evidence, design critique verdict, distinctiveness benchmark, product-quality scorecard, creative direction, component states, accessibility, desktop/mobile visual QA |
|
|
73
|
+
| Marketing/copy | Marketing Copy Lead, Frontend Design Lead, QA, Docs | `MESSAGING.md`, audience and pain, value proposition, proof, objections, voice/tone, CTA hierarchy, risky-claim review |
|
|
74
|
+
| Security-sensitive | Security Reviewer, Lead Architect, QA | OWASP review, boundary validation, dependency/secret review, regression or smoke evidence |
|
|
75
|
+
| Release/package | Deployment/Observability Engineer, Security Reviewer, QA, Docs | Release gate output, dependency audit, install/deploy smoke, provenance or publish identity evidence |
|
|
76
|
+
| Upgrade/dependency | Planner, Lead Architect, Security Reviewer, QA, Docs, Deployment/Observability Engineer | Release notes, codemods or migration guide, `agent-kit diff`, conflict review, audit output, rollback notes |
|
|
77
|
+
|
|
78
|
+
## Evidence Rules
|
|
79
|
+
|
|
80
|
+
- A checklist item is not done until the evidence is linked or named.
|
|
81
|
+
- A test is not evidence unless it covers the behavior, risk, or contract being claimed.
|
|
82
|
+
- A screenshot is not visual QA unless it covers the important viewport, state, and content.
|
|
83
|
+
- A research finding is not a best practice until it is promoted into templates, skills, checklists, audit checks, tests, release gates, or documented decisions.
|
|
84
|
+
- A fresh install can be baseline setup while still warning on `TBD`, example rows, or starter instruction text; those placeholders must be replaced before claiming strong or best-practice maturity.
|
|
85
|
+
- A local customization is acceptable only when `.agent-kit/overrides.json` explains why and when it was reviewed.
|
|
86
|
+
- A human correction is not durable until it is stored in `.agent-kit/corrections/`, remains secret-safe, has a clear scope, and is visible to future agents through installed instructions.
|
|
87
|
+
- An upgrade is not complete until `UPGRADE.md` records version changes, migration impact, rollback process, and verification evidence.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
Security review is required for every auth, API, data access, upload, webhook, external request, or dependency change.
|
|
4
|
+
|
|
5
|
+
## OWASP Top 10 Checklist
|
|
6
|
+
|
|
7
|
+
- Broken access control: verify RLS, ownership checks, admin checks, and tenant boundaries.
|
|
8
|
+
- Cryptographic failures: never expose secrets or sensitive tokens.
|
|
9
|
+
- Injection: validate inputs and use parameterized queries or safe client APIs.
|
|
10
|
+
- Insecure design: document abuse cases before implementation.
|
|
11
|
+
- Security misconfiguration: verify env vars, CORS, headers, and deployment settings.
|
|
12
|
+
- Vulnerable components: review dependency additions and audit results.
|
|
13
|
+
- Identification and authentication failures: test login, logout, refresh, and protected routes.
|
|
14
|
+
- Software and data integrity failures: protect CI, package installs, and migrations.
|
|
15
|
+
- Security logging and monitoring failures: log privileged actions and operational failures.
|
|
16
|
+
- SSRF: restrict server-side fetches and validate external URLs.
|
|
17
|
+
|
|
18
|
+
## Supabase Requirements
|
|
19
|
+
|
|
20
|
+
- RLS must be enabled for user-owned, tenant-owned, or privileged tables.
|
|
21
|
+
- RLS policies must enforce ownership and tenant boundaries.
|
|
22
|
+
- UI checks are not authorization.
|
|
23
|
+
- Service-role keys must never be exposed to browser code.
|
|
24
|
+
- Storage buckets require explicit access policies.
|
|
25
|
+
- Migrations that change authorization must include review notes.
|
|
26
|
+
- `SPEC.md` must include an RLS policy inventory for every protected table and bucket.
|
|
27
|
+
|
|
28
|
+
## Security Control Inventory
|
|
29
|
+
|
|
30
|
+
Track project controls explicitly.
|
|
31
|
+
|
|
32
|
+
| Control | Location | Owner | Verification |
|
|
33
|
+
| --- | --- | --- | --- |
|
|
34
|
+
| Auth middleware | TBD | TBD | Protected-route smoke test |
|
|
35
|
+
| RLS policies | Supabase migrations | TBD | SQL/policy review |
|
|
36
|
+
| Input validation | Forms, Server Actions, Route Handlers | TBD | Unit/integration tests |
|
|
37
|
+
| Rate limiting | Public mutations and auth-sensitive routes | TBD | Abuse-case review |
|
|
38
|
+
| Service-role isolation | Server-only modules | TBD | Bundle and code review |
|
|
39
|
+
|
|
40
|
+
## Input And Output Boundaries
|
|
41
|
+
|
|
42
|
+
- Validate form, API, webhook, query string, and route param inputs.
|
|
43
|
+
- Encode or safely render user-controlled output.
|
|
44
|
+
- Do not leak stack traces, tokens, SQL, or internal IDs in user-facing errors.
|
|
45
|
+
|
|
46
|
+
## Secrets
|
|
47
|
+
|
|
48
|
+
- Store secrets in environment configuration, not source code.
|
|
49
|
+
- Keep `.env.example` documented with placeholder values only.
|
|
50
|
+
- Rotate secrets after suspected exposure.
|
|
51
|
+
|
|
52
|
+
## Review Notes
|
|
53
|
+
|
|
54
|
+
Add security-sensitive decisions and exceptions to `DECISIONS.md`.
|