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.
- package/README.md +44 -40
- package/dist/cli.js +805 -199
- package/dist/cli.js.map +1 -1
- package/dist/index.js +805 -199
- package/dist/index.js.map +1 -1
- package/examples/generated-flutter/AGENTS.md +13 -0
- package/examples/generated-flutter/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-flutter/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-flutter/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-flutter/docs/ai/RECALL_COMMANDS.md +13 -1
- package/examples/generated-generic/AGENTS.md +13 -0
- package/examples/generated-generic/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-generic/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-generic/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-generic/docs/ai/RECALL_COMMANDS.md +13 -1
- package/examples/generated-ios-swift/AGENTS.md +13 -0
- package/examples/generated-ios-swift/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-ios-swift/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-ios-swift/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-ios-swift/docs/ai/RECALL_COMMANDS.md +13 -1
- package/examples/generated-kotlin-android/AGENTS.md +13 -0
- package/examples/generated-kotlin-android/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-kotlin-android/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-kotlin-android/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-kotlin-android/docs/ai/RECALL_COMMANDS.md +13 -1
- package/examples/generated-laravel-api/AGENTS.md +13 -0
- package/examples/generated-laravel-api/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-laravel-api/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-laravel-api/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-laravel-api/docs/ai/RECALL_COMMANDS.md +13 -1
- package/examples/generated-laravel-react/AGENTS.md +13 -0
- package/examples/generated-laravel-react/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-laravel-react/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-laravel-react/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-laravel-react/docs/ai/RECALL_COMMANDS.md +13 -1
- package/examples/generated-laravel-vue/AGENTS.md +13 -0
- package/examples/generated-laravel-vue/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-laravel-vue/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-laravel-vue/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-laravel-vue/docs/ai/RECALL_COMMANDS.md +13 -1
- package/examples/generated-nextjs/AGENTS.md +13 -0
- package/examples/generated-nextjs/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-nextjs/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-nextjs/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-nextjs/docs/ai/RECALL_COMMANDS.md +13 -1
- package/examples/generated-python-fastapi/AGENTS.md +13 -0
- package/examples/generated-python-fastapi/docs/20-security/SECURITY_MODEL.md +25 -4
- package/examples/generated-python-fastapi/docs/20-security/THREAT_MODEL.md +35 -3
- package/examples/generated-python-fastapi/docs/60-engineering/AI_AGENT_RULES.md +9 -0
- package/examples/generated-python-fastapi/docs/ai/RECALL_COMMANDS.md +13 -1
- 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
|
-
##
|
|
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
|
-
-
|
|
10
|
-
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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,
|
|
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
|
-
##
|
|
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
|
-
-
|
|
10
|
-
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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,
|
|
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
|
-
##
|
|
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
|
-
-
|
|
10
|
-
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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,
|
|
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
|
-
##
|
|
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
|
-
-
|
|
10
|
-
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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,
|
|
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
|
-
##
|
|
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
|
-
-
|
|
10
|
-
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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.
|