recall-os 0.2.0 → 0.3.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.
Files changed (51) hide show
  1. package/README.md +44 -40
  2. package/dist/cli.js +805 -199
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.js +805 -199
  5. package/dist/index.js.map +1 -1
  6. package/examples/generated-flutter/AGENTS.md +13 -0
  7. package/examples/generated-flutter/docs/20-security/SECURITY_MODEL.md +25 -4
  8. package/examples/generated-flutter/docs/20-security/THREAT_MODEL.md +35 -3
  9. package/examples/generated-flutter/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  10. package/examples/generated-flutter/docs/ai/RECALL_COMMANDS.md +13 -1
  11. package/examples/generated-generic/AGENTS.md +13 -0
  12. package/examples/generated-generic/docs/20-security/SECURITY_MODEL.md +25 -4
  13. package/examples/generated-generic/docs/20-security/THREAT_MODEL.md +35 -3
  14. package/examples/generated-generic/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  15. package/examples/generated-generic/docs/ai/RECALL_COMMANDS.md +13 -1
  16. package/examples/generated-ios-swift/AGENTS.md +13 -0
  17. package/examples/generated-ios-swift/docs/20-security/SECURITY_MODEL.md +25 -4
  18. package/examples/generated-ios-swift/docs/20-security/THREAT_MODEL.md +35 -3
  19. package/examples/generated-ios-swift/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  20. package/examples/generated-ios-swift/docs/ai/RECALL_COMMANDS.md +13 -1
  21. package/examples/generated-kotlin-android/AGENTS.md +13 -0
  22. package/examples/generated-kotlin-android/docs/20-security/SECURITY_MODEL.md +25 -4
  23. package/examples/generated-kotlin-android/docs/20-security/THREAT_MODEL.md +35 -3
  24. package/examples/generated-kotlin-android/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  25. package/examples/generated-kotlin-android/docs/ai/RECALL_COMMANDS.md +13 -1
  26. package/examples/generated-laravel-api/AGENTS.md +13 -0
  27. package/examples/generated-laravel-api/docs/20-security/SECURITY_MODEL.md +25 -4
  28. package/examples/generated-laravel-api/docs/20-security/THREAT_MODEL.md +35 -3
  29. package/examples/generated-laravel-api/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  30. package/examples/generated-laravel-api/docs/ai/RECALL_COMMANDS.md +13 -1
  31. package/examples/generated-laravel-react/AGENTS.md +13 -0
  32. package/examples/generated-laravel-react/docs/20-security/SECURITY_MODEL.md +25 -4
  33. package/examples/generated-laravel-react/docs/20-security/THREAT_MODEL.md +35 -3
  34. package/examples/generated-laravel-react/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  35. package/examples/generated-laravel-react/docs/ai/RECALL_COMMANDS.md +13 -1
  36. package/examples/generated-laravel-vue/AGENTS.md +13 -0
  37. package/examples/generated-laravel-vue/docs/20-security/SECURITY_MODEL.md +25 -4
  38. package/examples/generated-laravel-vue/docs/20-security/THREAT_MODEL.md +35 -3
  39. package/examples/generated-laravel-vue/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  40. package/examples/generated-laravel-vue/docs/ai/RECALL_COMMANDS.md +13 -1
  41. package/examples/generated-nextjs/AGENTS.md +13 -0
  42. package/examples/generated-nextjs/docs/20-security/SECURITY_MODEL.md +25 -4
  43. package/examples/generated-nextjs/docs/20-security/THREAT_MODEL.md +35 -3
  44. package/examples/generated-nextjs/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  45. package/examples/generated-nextjs/docs/ai/RECALL_COMMANDS.md +13 -1
  46. package/examples/generated-python-fastapi/AGENTS.md +13 -0
  47. package/examples/generated-python-fastapi/docs/20-security/SECURITY_MODEL.md +25 -4
  48. package/examples/generated-python-fastapi/docs/20-security/THREAT_MODEL.md +35 -3
  49. package/examples/generated-python-fastapi/docs/60-engineering/AI_AGENT_RULES.md +9 -0
  50. package/examples/generated-python-fastapi/docs/ai/RECALL_COMMANDS.md +13 -1
  51. package/package.json +2 -2
@@ -13,3 +13,16 @@ Required reading:
13
13
  - `docs/60-engineering/ENGINEERING_STANDARDS.md`
14
14
 
15
15
  Repository rules override model preferences. If instructions conflict, stop and report the conflict.
16
+
17
+ ## Changing an accepted decision
18
+
19
+ Before changing anything an accepted ADR governs (framework, database, auth, API shape, and
20
+ similar):
21
+
22
+ 1. Check `docs/adrs/` for an accepted ADR that covers it.
23
+ 2. If your change contradicts one, stop and confirm with a human first — do not silently change the
24
+ code and leave the ADR saying the opposite.
25
+ 3. Record the change as a new decision with `recall adr supersede <old> <new-title>`. That
26
+ supersedes the old ADR instead of overwriting history, so the reasoning stays auditable.
27
+
28
+ Repository memory is only trustworthy if decisions change through this trail, not silently.
@@ -1,11 +1,32 @@
1
1
  # Security Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — fill the prompted sections below with this repository's real model as it grows.
6
+ `recall doctor` flags these as warnings once the repository has real work (a feature, module, or
7
+ accepted decision).
6
8
 
7
9
  ## Baseline Rules
8
10
 
9
- - Do not commit secrets.
10
- - Do not read or copy `.env` files into docs.
11
+ - Never commit secrets or credentials, and never read or copy `.env` files into docs.
12
+ - Validate and authorize untrusted input at every trust boundary.
11
13
  - Do not add network, telemetry, cloud, MCP runtime, or AI API behavior without explicit review.
14
+
15
+ ## Authentication And Authorization
16
+
17
+ Describe how this repository authenticates users or clients and how it authorizes actions, including
18
+ where those checks live.
19
+
20
+ ## Secrets And Configuration
21
+
22
+ Describe where secrets live, how they are injected, and how configuration is kept out of version
23
+ control.
24
+
25
+ ## Sensitive Data
26
+
27
+ Describe the sensitive or personal data this repository handles, and how it is protected at rest and
28
+ in transit.
29
+
30
+ ## Dependencies And Supply Chain
31
+
32
+ Describe how third-party dependencies are vetted, pinned, and updated.
@@ -1,7 +1,39 @@
1
1
  # Threat Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — replace the prompts below with this repository's real analysis as it grows. `recall doctor`
6
+ flags these as warnings once the repository has real work (a feature, module, or accepted decision).
6
7
 
7
- Track repository-specific risks here as the project evolves.
8
+ ## Assets
9
+
10
+ Describe what this repository must protect: user data, credentials, money, availability, or
11
+ reputation.
12
+
13
+ ## Entry Points
14
+
15
+ Describe where untrusted input enters: HTTP endpoints, webhooks, file uploads, queues, CLI input, or
16
+ third-party callbacks.
17
+
18
+ ## Trust Boundaries
19
+
20
+ Describe where trust changes: client to server, service to database, your code to third-party APIs.
21
+
22
+ ## Threats
23
+
24
+ Describe the concrete threats that apply to this repository, by category:
25
+
26
+ - Spoofing — how identities are faked or sessions stolen.
27
+ - Tampering — how requests, data, or builds are altered (injection, mass assignment).
28
+ - Repudiation — actions that must remain auditable.
29
+ - Information disclosure — how sensitive data or secrets could leak.
30
+ - Denial of service — how the system can be overwhelmed or abused.
31
+ - Elevation of privilege — how a user could gain access they should not have.
32
+
33
+ ## Mitigations
34
+
35
+ Describe the control in place or planned for each threat above.
36
+
37
+ ## Open Risks
38
+
39
+ Describe accepted or unresolved risks and who owns them.
@@ -4,3 +4,12 @@ AI agents must follow repository memory over model preference.
4
4
 
5
5
  If a request conflicts with accepted repository memory or engineering standards, stop and report the
6
6
  conflict.
7
+
8
+ ## Changing an accepted decision
9
+
10
+ When work would change something an accepted ADR governs:
11
+
12
+ 1. Find the accepted ADR in `docs/adrs/` that covers it.
13
+ 2. If the change contradicts it, stop and confirm with a human before changing the code.
14
+ 3. Record the new decision with `recall adr supersede <old> <new-title>` so the old ADR is marked
15
+ superseded and the reasoning is preserved, instead of silently editing or contradicting it.
@@ -108,6 +108,17 @@ Options:
108
108
  - `--dry-run`: show planned writes without writing files.
109
109
  - `--force`: overwrite existing files explicitly.
110
110
 
111
+ ### `recall adr supersede <old> <new-title>`
112
+
113
+ Record a changed decision. Marks an accepted ADR as `Accepted — superseded by ADR-####` and creates
114
+ a new accepted ADR that declares what it supersedes, so the reasoning trail stays auditable instead
115
+ of being overwritten. Doctor then warns about any memory still referencing the superseded decision.
116
+
117
+ Options:
118
+
119
+ - `--dry-run`: show planned writes without writing files.
120
+ - `--force`: overwrite existing files explicitly.
121
+
111
122
  ### `recall module create <name>`
112
123
 
113
124
  Create module memory docs under the configured modules directory.
@@ -124,7 +135,8 @@ engineering evidence is present, and whether memory references decisions that ex
124
135
  accepted.
125
136
 
126
137
  Doctor also runs deterministic drift checks: feature or module memory that references a missing ADR
127
- is an error, and memory that references a not-yet-accepted ADR is a warning.
138
+ is an error, memory that references a not-yet-accepted ADR is a warning, and memory that still
139
+ references a superseded decision is a warning.
128
140
 
129
141
  Exit codes:
130
142
 
@@ -13,3 +13,16 @@ Required reading:
13
13
  - `docs/60-engineering/ENGINEERING_STANDARDS.md`
14
14
 
15
15
  Repository rules override model preferences. If instructions conflict, stop and report the conflict.
16
+
17
+ ## Changing an accepted decision
18
+
19
+ Before changing anything an accepted ADR governs (framework, database, auth, API shape, and
20
+ similar):
21
+
22
+ 1. Check `docs/adrs/` for an accepted ADR that covers it.
23
+ 2. If your change contradicts one, stop and confirm with a human first — do not silently change the
24
+ code and leave the ADR saying the opposite.
25
+ 3. Record the change as a new decision with `recall adr supersede <old> <new-title>`. That
26
+ supersedes the old ADR instead of overwriting history, so the reasoning stays auditable.
27
+
28
+ Repository memory is only trustworthy if decisions change through this trail, not silently.
@@ -1,11 +1,32 @@
1
1
  # Security Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — fill the prompted sections below with this repository's real model as it grows.
6
+ `recall doctor` flags these as warnings once the repository has real work (a feature, module, or
7
+ accepted decision).
6
8
 
7
9
  ## Baseline Rules
8
10
 
9
- - Do not commit secrets.
10
- - Do not read or copy `.env` files into docs.
11
+ - Never commit secrets or credentials, and never read or copy `.env` files into docs.
12
+ - Validate and authorize untrusted input at every trust boundary.
11
13
  - Do not add network, telemetry, cloud, MCP runtime, or AI API behavior without explicit review.
14
+
15
+ ## Authentication And Authorization
16
+
17
+ Describe how this repository authenticates users or clients and how it authorizes actions, including
18
+ where those checks live.
19
+
20
+ ## Secrets And Configuration
21
+
22
+ Describe where secrets live, how they are injected, and how configuration is kept out of version
23
+ control.
24
+
25
+ ## Sensitive Data
26
+
27
+ Describe the sensitive or personal data this repository handles, and how it is protected at rest and
28
+ in transit.
29
+
30
+ ## Dependencies And Supply Chain
31
+
32
+ Describe how third-party dependencies are vetted, pinned, and updated.
@@ -1,7 +1,39 @@
1
1
  # Threat Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — replace the prompts below with this repository's real analysis as it grows. `recall doctor`
6
+ flags these as warnings once the repository has real work (a feature, module, or accepted decision).
6
7
 
7
- Track repository-specific risks here as the project evolves.
8
+ ## Assets
9
+
10
+ Describe what this repository must protect: user data, credentials, money, availability, or
11
+ reputation.
12
+
13
+ ## Entry Points
14
+
15
+ Describe where untrusted input enters: HTTP endpoints, webhooks, file uploads, queues, CLI input, or
16
+ third-party callbacks.
17
+
18
+ ## Trust Boundaries
19
+
20
+ Describe where trust changes: client to server, service to database, your code to third-party APIs.
21
+
22
+ ## Threats
23
+
24
+ Describe the concrete threats that apply to this repository, by category:
25
+
26
+ - Spoofing — how identities are faked or sessions stolen.
27
+ - Tampering — how requests, data, or builds are altered (injection, mass assignment).
28
+ - Repudiation — actions that must remain auditable.
29
+ - Information disclosure — how sensitive data or secrets could leak.
30
+ - Denial of service — how the system can be overwhelmed or abused.
31
+ - Elevation of privilege — how a user could gain access they should not have.
32
+
33
+ ## Mitigations
34
+
35
+ Describe the control in place or planned for each threat above.
36
+
37
+ ## Open Risks
38
+
39
+ Describe accepted or unresolved risks and who owns them.
@@ -4,3 +4,12 @@ AI agents must follow repository memory over model preference.
4
4
 
5
5
  If a request conflicts with accepted repository memory or engineering standards, stop and report the
6
6
  conflict.
7
+
8
+ ## Changing an accepted decision
9
+
10
+ When work would change something an accepted ADR governs:
11
+
12
+ 1. Find the accepted ADR in `docs/adrs/` that covers it.
13
+ 2. If the change contradicts it, stop and confirm with a human before changing the code.
14
+ 3. Record the new decision with `recall adr supersede <old> <new-title>` so the old ADR is marked
15
+ superseded and the reasoning is preserved, instead of silently editing or contradicting it.
@@ -108,6 +108,17 @@ Options:
108
108
  - `--dry-run`: show planned writes without writing files.
109
109
  - `--force`: overwrite existing files explicitly.
110
110
 
111
+ ### `recall adr supersede <old> <new-title>`
112
+
113
+ Record a changed decision. Marks an accepted ADR as `Accepted — superseded by ADR-####` and creates
114
+ a new accepted ADR that declares what it supersedes, so the reasoning trail stays auditable instead
115
+ of being overwritten. Doctor then warns about any memory still referencing the superseded decision.
116
+
117
+ Options:
118
+
119
+ - `--dry-run`: show planned writes without writing files.
120
+ - `--force`: overwrite existing files explicitly.
121
+
111
122
  ### `recall module create <name>`
112
123
 
113
124
  Create module memory docs under the configured modules directory.
@@ -124,7 +135,8 @@ engineering evidence is present, and whether memory references decisions that ex
124
135
  accepted.
125
136
 
126
137
  Doctor also runs deterministic drift checks: feature or module memory that references a missing ADR
127
- is an error, and memory that references a not-yet-accepted ADR is a warning.
138
+ is an error, memory that references a not-yet-accepted ADR is a warning, and memory that still
139
+ references a superseded decision is a warning.
128
140
 
129
141
  Exit codes:
130
142
 
@@ -13,3 +13,16 @@ Required reading:
13
13
  - `docs/60-engineering/ENGINEERING_STANDARDS.md`
14
14
 
15
15
  Repository rules override model preferences. If instructions conflict, stop and report the conflict.
16
+
17
+ ## Changing an accepted decision
18
+
19
+ Before changing anything an accepted ADR governs (framework, database, auth, API shape, and
20
+ similar):
21
+
22
+ 1. Check `docs/adrs/` for an accepted ADR that covers it.
23
+ 2. If your change contradicts one, stop and confirm with a human first — do not silently change the
24
+ code and leave the ADR saying the opposite.
25
+ 3. Record the change as a new decision with `recall adr supersede <old> <new-title>`. That
26
+ supersedes the old ADR instead of overwriting history, so the reasoning stays auditable.
27
+
28
+ Repository memory is only trustworthy if decisions change through this trail, not silently.
@@ -1,11 +1,32 @@
1
1
  # Security Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — fill the prompted sections below with this repository's real model as it grows.
6
+ `recall doctor` flags these as warnings once the repository has real work (a feature, module, or
7
+ accepted decision).
6
8
 
7
9
  ## Baseline Rules
8
10
 
9
- - Do not commit secrets.
10
- - Do not read or copy `.env` files into docs.
11
+ - Never commit secrets or credentials, and never read or copy `.env` files into docs.
12
+ - Validate and authorize untrusted input at every trust boundary.
11
13
  - Do not add network, telemetry, cloud, MCP runtime, or AI API behavior without explicit review.
14
+
15
+ ## Authentication And Authorization
16
+
17
+ Describe how this repository authenticates users or clients and how it authorizes actions, including
18
+ where those checks live.
19
+
20
+ ## Secrets And Configuration
21
+
22
+ Describe where secrets live, how they are injected, and how configuration is kept out of version
23
+ control.
24
+
25
+ ## Sensitive Data
26
+
27
+ Describe the sensitive or personal data this repository handles, and how it is protected at rest and
28
+ in transit.
29
+
30
+ ## Dependencies And Supply Chain
31
+
32
+ Describe how third-party dependencies are vetted, pinned, and updated.
@@ -1,7 +1,39 @@
1
1
  # Threat Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — replace the prompts below with this repository's real analysis as it grows. `recall doctor`
6
+ flags these as warnings once the repository has real work (a feature, module, or accepted decision).
6
7
 
7
- Track repository-specific risks here as the project evolves.
8
+ ## Assets
9
+
10
+ Describe what this repository must protect: user data, credentials, money, availability, or
11
+ reputation.
12
+
13
+ ## Entry Points
14
+
15
+ Describe where untrusted input enters: HTTP endpoints, webhooks, file uploads, queues, CLI input, or
16
+ third-party callbacks.
17
+
18
+ ## Trust Boundaries
19
+
20
+ Describe where trust changes: client to server, service to database, your code to third-party APIs.
21
+
22
+ ## Threats
23
+
24
+ Describe the concrete threats that apply to this repository, by category:
25
+
26
+ - Spoofing — how identities are faked or sessions stolen.
27
+ - Tampering — how requests, data, or builds are altered (injection, mass assignment).
28
+ - Repudiation — actions that must remain auditable.
29
+ - Information disclosure — how sensitive data or secrets could leak.
30
+ - Denial of service — how the system can be overwhelmed or abused.
31
+ - Elevation of privilege — how a user could gain access they should not have.
32
+
33
+ ## Mitigations
34
+
35
+ Describe the control in place or planned for each threat above.
36
+
37
+ ## Open Risks
38
+
39
+ Describe accepted or unresolved risks and who owns them.
@@ -4,3 +4,12 @@ AI agents must follow repository memory over model preference.
4
4
 
5
5
  If a request conflicts with accepted repository memory or engineering standards, stop and report the
6
6
  conflict.
7
+
8
+ ## Changing an accepted decision
9
+
10
+ When work would change something an accepted ADR governs:
11
+
12
+ 1. Find the accepted ADR in `docs/adrs/` that covers it.
13
+ 2. If the change contradicts it, stop and confirm with a human before changing the code.
14
+ 3. Record the new decision with `recall adr supersede <old> <new-title>` so the old ADR is marked
15
+ superseded and the reasoning is preserved, instead of silently editing or contradicting it.
@@ -108,6 +108,17 @@ Options:
108
108
  - `--dry-run`: show planned writes without writing files.
109
109
  - `--force`: overwrite existing files explicitly.
110
110
 
111
+ ### `recall adr supersede <old> <new-title>`
112
+
113
+ Record a changed decision. Marks an accepted ADR as `Accepted — superseded by ADR-####` and creates
114
+ a new accepted ADR that declares what it supersedes, so the reasoning trail stays auditable instead
115
+ of being overwritten. Doctor then warns about any memory still referencing the superseded decision.
116
+
117
+ Options:
118
+
119
+ - `--dry-run`: show planned writes without writing files.
120
+ - `--force`: overwrite existing files explicitly.
121
+
111
122
  ### `recall module create <name>`
112
123
 
113
124
  Create module memory docs under the configured modules directory.
@@ -124,7 +135,8 @@ engineering evidence is present, and whether memory references decisions that ex
124
135
  accepted.
125
136
 
126
137
  Doctor also runs deterministic drift checks: feature or module memory that references a missing ADR
127
- is an error, and memory that references a not-yet-accepted ADR is a warning.
138
+ is an error, memory that references a not-yet-accepted ADR is a warning, and memory that still
139
+ references a superseded decision is a warning.
128
140
 
129
141
  Exit codes:
130
142
 
@@ -13,3 +13,16 @@ Required reading:
13
13
  - `docs/60-engineering/ENGINEERING_STANDARDS.md`
14
14
 
15
15
  Repository rules override model preferences. If instructions conflict, stop and report the conflict.
16
+
17
+ ## Changing an accepted decision
18
+
19
+ Before changing anything an accepted ADR governs (framework, database, auth, API shape, and
20
+ similar):
21
+
22
+ 1. Check `docs/adrs/` for an accepted ADR that covers it.
23
+ 2. If your change contradicts one, stop and confirm with a human first — do not silently change the
24
+ code and leave the ADR saying the opposite.
25
+ 3. Record the change as a new decision with `recall adr supersede <old> <new-title>`. That
26
+ supersedes the old ADR instead of overwriting history, so the reasoning stays auditable.
27
+
28
+ Repository memory is only trustworthy if decisions change through this trail, not silently.
@@ -1,11 +1,32 @@
1
1
  # Security Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — fill the prompted sections below with this repository's real model as it grows.
6
+ `recall doctor` flags these as warnings once the repository has real work (a feature, module, or
7
+ accepted decision).
6
8
 
7
9
  ## Baseline Rules
8
10
 
9
- - Do not commit secrets.
10
- - Do not read or copy `.env` files into docs.
11
+ - Never commit secrets or credentials, and never read or copy `.env` files into docs.
12
+ - Validate and authorize untrusted input at every trust boundary.
11
13
  - Do not add network, telemetry, cloud, MCP runtime, or AI API behavior without explicit review.
14
+
15
+ ## Authentication And Authorization
16
+
17
+ Describe how this repository authenticates users or clients and how it authorizes actions, including
18
+ where those checks live.
19
+
20
+ ## Secrets And Configuration
21
+
22
+ Describe where secrets live, how they are injected, and how configuration is kept out of version
23
+ control.
24
+
25
+ ## Sensitive Data
26
+
27
+ Describe the sensitive or personal data this repository handles, and how it is protected at rest and
28
+ in transit.
29
+
30
+ ## Dependencies And Supply Chain
31
+
32
+ Describe how third-party dependencies are vetted, pinned, and updated.
@@ -1,7 +1,39 @@
1
1
  # Threat Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — replace the prompts below with this repository's real analysis as it grows. `recall doctor`
6
+ flags these as warnings once the repository has real work (a feature, module, or accepted decision).
6
7
 
7
- Track repository-specific risks here as the project evolves.
8
+ ## Assets
9
+
10
+ Describe what this repository must protect: user data, credentials, money, availability, or
11
+ reputation.
12
+
13
+ ## Entry Points
14
+
15
+ Describe where untrusted input enters: HTTP endpoints, webhooks, file uploads, queues, CLI input, or
16
+ third-party callbacks.
17
+
18
+ ## Trust Boundaries
19
+
20
+ Describe where trust changes: client to server, service to database, your code to third-party APIs.
21
+
22
+ ## Threats
23
+
24
+ Describe the concrete threats that apply to this repository, by category:
25
+
26
+ - Spoofing — how identities are faked or sessions stolen.
27
+ - Tampering — how requests, data, or builds are altered (injection, mass assignment).
28
+ - Repudiation — actions that must remain auditable.
29
+ - Information disclosure — how sensitive data or secrets could leak.
30
+ - Denial of service — how the system can be overwhelmed or abused.
31
+ - Elevation of privilege — how a user could gain access they should not have.
32
+
33
+ ## Mitigations
34
+
35
+ Describe the control in place or planned for each threat above.
36
+
37
+ ## Open Risks
38
+
39
+ Describe accepted or unresolved risks and who owns them.
@@ -4,3 +4,12 @@ AI agents must follow repository memory over model preference.
4
4
 
5
5
  If a request conflicts with accepted repository memory or engineering standards, stop and report the
6
6
  conflict.
7
+
8
+ ## Changing an accepted decision
9
+
10
+ When work would change something an accepted ADR governs:
11
+
12
+ 1. Find the accepted ADR in `docs/adrs/` that covers it.
13
+ 2. If the change contradicts it, stop and confirm with a human before changing the code.
14
+ 3. Record the new decision with `recall adr supersede <old> <new-title>` so the old ADR is marked
15
+ superseded and the reasoning is preserved, instead of silently editing or contradicting it.
@@ -108,6 +108,17 @@ Options:
108
108
  - `--dry-run`: show planned writes without writing files.
109
109
  - `--force`: overwrite existing files explicitly.
110
110
 
111
+ ### `recall adr supersede <old> <new-title>`
112
+
113
+ Record a changed decision. Marks an accepted ADR as `Accepted — superseded by ADR-####` and creates
114
+ a new accepted ADR that declares what it supersedes, so the reasoning trail stays auditable instead
115
+ of being overwritten. Doctor then warns about any memory still referencing the superseded decision.
116
+
117
+ Options:
118
+
119
+ - `--dry-run`: show planned writes without writing files.
120
+ - `--force`: overwrite existing files explicitly.
121
+
111
122
  ### `recall module create <name>`
112
123
 
113
124
  Create module memory docs under the configured modules directory.
@@ -124,7 +135,8 @@ engineering evidence is present, and whether memory references decisions that ex
124
135
  accepted.
125
136
 
126
137
  Doctor also runs deterministic drift checks: feature or module memory that references a missing ADR
127
- is an error, and memory that references a not-yet-accepted ADR is a warning.
138
+ is an error, memory that references a not-yet-accepted ADR is a warning, and memory that still
139
+ references a superseded decision is a warning.
128
140
 
129
141
  Exit codes:
130
142
 
@@ -13,3 +13,16 @@ Required reading:
13
13
  - `docs/60-engineering/ENGINEERING_STANDARDS.md`
14
14
 
15
15
  Repository rules override model preferences. If instructions conflict, stop and report the conflict.
16
+
17
+ ## Changing an accepted decision
18
+
19
+ Before changing anything an accepted ADR governs (framework, database, auth, API shape, and
20
+ similar):
21
+
22
+ 1. Check `docs/adrs/` for an accepted ADR that covers it.
23
+ 2. If your change contradicts one, stop and confirm with a human first — do not silently change the
24
+ code and leave the ADR saying the opposite.
25
+ 3. Record the change as a new decision with `recall adr supersede <old> <new-title>`. That
26
+ supersedes the old ADR instead of overwriting history, so the reasoning stays auditable.
27
+
28
+ Repository memory is only trustworthy if decisions change through this trail, not silently.
@@ -1,11 +1,32 @@
1
1
  # Security Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — fill the prompted sections below with this repository's real model as it grows.
6
+ `recall doctor` flags these as warnings once the repository has real work (a feature, module, or
7
+ accepted decision).
6
8
 
7
9
  ## Baseline Rules
8
10
 
9
- - Do not commit secrets.
10
- - Do not read or copy `.env` files into docs.
11
+ - Never commit secrets or credentials, and never read or copy `.env` files into docs.
12
+ - Validate and authorize untrusted input at every trust boundary.
11
13
  - Do not add network, telemetry, cloud, MCP runtime, or AI API behavior without explicit review.
14
+
15
+ ## Authentication And Authorization
16
+
17
+ Describe how this repository authenticates users or clients and how it authorizes actions, including
18
+ where those checks live.
19
+
20
+ ## Secrets And Configuration
21
+
22
+ Describe where secrets live, how they are injected, and how configuration is kept out of version
23
+ control.
24
+
25
+ ## Sensitive Data
26
+
27
+ Describe the sensitive or personal data this repository handles, and how it is protected at rest and
28
+ in transit.
29
+
30
+ ## Dependencies And Supply Chain
31
+
32
+ Describe how third-party dependencies are vetted, pinned, and updated.
@@ -1,7 +1,39 @@
1
1
  # Threat Model
2
2
 
3
- ## Current Status
3
+ ## Status
4
4
 
5
- Draft.
5
+ Draft — replace the prompts below with this repository's real analysis as it grows. `recall doctor`
6
+ flags these as warnings once the repository has real work (a feature, module, or accepted decision).
6
7
 
7
- Track repository-specific risks here as the project evolves.
8
+ ## Assets
9
+
10
+ Describe what this repository must protect: user data, credentials, money, availability, or
11
+ reputation.
12
+
13
+ ## Entry Points
14
+
15
+ Describe where untrusted input enters: HTTP endpoints, webhooks, file uploads, queues, CLI input, or
16
+ third-party callbacks.
17
+
18
+ ## Trust Boundaries
19
+
20
+ Describe where trust changes: client to server, service to database, your code to third-party APIs.
21
+
22
+ ## Threats
23
+
24
+ Describe the concrete threats that apply to this repository, by category:
25
+
26
+ - Spoofing — how identities are faked or sessions stolen.
27
+ - Tampering — how requests, data, or builds are altered (injection, mass assignment).
28
+ - Repudiation — actions that must remain auditable.
29
+ - Information disclosure — how sensitive data or secrets could leak.
30
+ - Denial of service — how the system can be overwhelmed or abused.
31
+ - Elevation of privilege — how a user could gain access they should not have.
32
+
33
+ ## Mitigations
34
+
35
+ Describe the control in place or planned for each threat above.
36
+
37
+ ## Open Risks
38
+
39
+ Describe accepted or unresolved risks and who owns them.