recall-os 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/LICENSE +21 -0
- package/README.md +213 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +5213 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +5212 -0
- package/dist/index.js.map +1 -0
- package/examples/generated-flutter/.recall/config.json +17 -0
- package/examples/generated-flutter/.recall/hooks/pre-commit +9 -0
- package/examples/generated-flutter/AGENTS.md +15 -0
- package/examples/generated-flutter/CLAUDE.md +7 -0
- package/examples/generated-flutter/README.md +10 -0
- package/examples/generated-flutter/docs/00-product/BRD.md +9 -0
- package/examples/generated-flutter/docs/00-product/PRD.md +13 -0
- package/examples/generated-flutter/docs/10-architecture/ARCHITECTURE.md +11 -0
- package/examples/generated-flutter/docs/10-architecture/FILE_WRITE_POLICY.md +8 -0
- package/examples/generated-flutter/docs/10-architecture/MEMORY_ENGINE.md +16 -0
- package/examples/generated-flutter/docs/20-security/SECURITY_MODEL.md +11 -0
- package/examples/generated-flutter/docs/20-security/THREAT_MODEL.md +7 -0
- package/examples/generated-flutter/docs/30-modules/README.md +17 -0
- package/examples/generated-flutter/docs/40-features/README.md +22 -0
- package/examples/generated-flutter/docs/50-quality/QUALITY_GATES.md +11 -0
- package/examples/generated-flutter/docs/50-quality/TESTING_STRATEGY.md +5 -0
- package/examples/generated-flutter/docs/60-engineering/AI_AGENT_RULES.md +6 -0
- package/examples/generated-flutter/docs/60-engineering/ENGINEERING_STANDARDS.md +11 -0
- package/examples/generated-flutter/docs/adrs/README.md +5 -0
- package/examples/generated-flutter/docs/adrs/proposed/ADR-PROPOSED-flutter-platform.md +10 -0
- package/examples/generated-flutter/docs/ai/AI_AGENTS_SKILLS_MCP_STRATEGY.md +7 -0
- package/examples/generated-flutter/docs/ai/MCP_STRATEGY.md +6 -0
- package/examples/generated-flutter/docs/ai/RECALL_COMMANDS.md +133 -0
- package/examples/generated-flutter/docs/ai/presets/flutter-guidance.md +4 -0
- package/examples/generated-generic/.recall/config.json +17 -0
- package/examples/generated-generic/.recall/hooks/pre-commit +9 -0
- package/examples/generated-generic/AGENTS.md +15 -0
- package/examples/generated-generic/CLAUDE.md +7 -0
- package/examples/generated-generic/README.md +10 -0
- package/examples/generated-generic/docs/00-product/BRD.md +9 -0
- package/examples/generated-generic/docs/00-product/PRD.md +13 -0
- package/examples/generated-generic/docs/10-architecture/ARCHITECTURE.md +11 -0
- package/examples/generated-generic/docs/10-architecture/FILE_WRITE_POLICY.md +8 -0
- package/examples/generated-generic/docs/10-architecture/MEMORY_ENGINE.md +16 -0
- package/examples/generated-generic/docs/20-security/SECURITY_MODEL.md +11 -0
- package/examples/generated-generic/docs/20-security/THREAT_MODEL.md +7 -0
- package/examples/generated-generic/docs/30-modules/README.md +17 -0
- package/examples/generated-generic/docs/40-features/README.md +22 -0
- package/examples/generated-generic/docs/50-quality/QUALITY_GATES.md +11 -0
- package/examples/generated-generic/docs/50-quality/TESTING_STRATEGY.md +5 -0
- package/examples/generated-generic/docs/60-engineering/AI_AGENT_RULES.md +6 -0
- package/examples/generated-generic/docs/60-engineering/ENGINEERING_STANDARDS.md +11 -0
- package/examples/generated-generic/docs/adrs/README.md +5 -0
- package/examples/generated-generic/docs/ai/AI_AGENTS_SKILLS_MCP_STRATEGY.md +7 -0
- package/examples/generated-generic/docs/ai/MCP_STRATEGY.md +6 -0
- package/examples/generated-generic/docs/ai/RECALL_COMMANDS.md +133 -0
- package/examples/generated-generic/docs/ai/presets/generic-guidance.md +3 -0
- package/examples/generated-ios-swift/.recall/config.json +17 -0
- package/examples/generated-ios-swift/.recall/hooks/pre-commit +9 -0
- package/examples/generated-ios-swift/AGENTS.md +15 -0
- package/examples/generated-ios-swift/CLAUDE.md +7 -0
- package/examples/generated-ios-swift/README.md +10 -0
- package/examples/generated-ios-swift/docs/00-product/BRD.md +9 -0
- package/examples/generated-ios-swift/docs/00-product/PRD.md +13 -0
- package/examples/generated-ios-swift/docs/10-architecture/ARCHITECTURE.md +11 -0
- package/examples/generated-ios-swift/docs/10-architecture/FILE_WRITE_POLICY.md +8 -0
- package/examples/generated-ios-swift/docs/10-architecture/MEMORY_ENGINE.md +16 -0
- package/examples/generated-ios-swift/docs/20-security/SECURITY_MODEL.md +11 -0
- package/examples/generated-ios-swift/docs/20-security/THREAT_MODEL.md +7 -0
- package/examples/generated-ios-swift/docs/30-modules/README.md +17 -0
- package/examples/generated-ios-swift/docs/40-features/README.md +22 -0
- package/examples/generated-ios-swift/docs/50-quality/QUALITY_GATES.md +11 -0
- package/examples/generated-ios-swift/docs/50-quality/TESTING_STRATEGY.md +5 -0
- package/examples/generated-ios-swift/docs/60-engineering/AI_AGENT_RULES.md +6 -0
- package/examples/generated-ios-swift/docs/60-engineering/ENGINEERING_STANDARDS.md +11 -0
- package/examples/generated-ios-swift/docs/adrs/README.md +5 -0
- package/examples/generated-ios-swift/docs/adrs/proposed/ADR-PROPOSED-ios-swift-architecture-mvvm.md +23 -0
- package/examples/generated-ios-swift/docs/adrs/proposed/ADR-PROPOSED-ios-swift-concurrency-async.md +23 -0
- package/examples/generated-ios-swift/docs/adrs/proposed/ADR-PROPOSED-ios-swift-persistence-swiftdata.md +23 -0
- package/examples/generated-ios-swift/docs/adrs/proposed/ADR-PROPOSED-ios-swift-platform.md +24 -0
- package/examples/generated-ios-swift/docs/adrs/proposed/ADR-PROPOSED-ios-swift-ui-swiftui.md +23 -0
- package/examples/generated-ios-swift/docs/ai/AI_AGENTS_SKILLS_MCP_STRATEGY.md +7 -0
- package/examples/generated-ios-swift/docs/ai/MCP_STRATEGY.md +6 -0
- package/examples/generated-ios-swift/docs/ai/RECALL_COMMANDS.md +133 -0
- package/examples/generated-ios-swift/docs/ai/presets/ios-swift-guidance.md +30 -0
- package/examples/generated-kotlin-android/.recall/config.json +17 -0
- package/examples/generated-kotlin-android/.recall/hooks/pre-commit +9 -0
- package/examples/generated-kotlin-android/AGENTS.md +15 -0
- package/examples/generated-kotlin-android/CLAUDE.md +7 -0
- package/examples/generated-kotlin-android/README.md +11 -0
- package/examples/generated-kotlin-android/docs/00-product/BRD.md +9 -0
- package/examples/generated-kotlin-android/docs/00-product/PRD.md +13 -0
- package/examples/generated-kotlin-android/docs/10-architecture/ARCHITECTURE.md +11 -0
- package/examples/generated-kotlin-android/docs/10-architecture/FILE_WRITE_POLICY.md +8 -0
- package/examples/generated-kotlin-android/docs/10-architecture/MEMORY_ENGINE.md +16 -0
- package/examples/generated-kotlin-android/docs/20-security/SECURITY_MODEL.md +11 -0
- package/examples/generated-kotlin-android/docs/20-security/THREAT_MODEL.md +7 -0
- package/examples/generated-kotlin-android/docs/30-modules/README.md +17 -0
- package/examples/generated-kotlin-android/docs/40-features/README.md +22 -0
- package/examples/generated-kotlin-android/docs/50-quality/QUALITY_GATES.md +11 -0
- package/examples/generated-kotlin-android/docs/50-quality/TESTING_STRATEGY.md +5 -0
- package/examples/generated-kotlin-android/docs/60-engineering/AI_AGENT_RULES.md +6 -0
- package/examples/generated-kotlin-android/docs/60-engineering/ENGINEERING_STANDARDS.md +11 -0
- package/examples/generated-kotlin-android/docs/adrs/README.md +5 -0
- package/examples/generated-kotlin-android/docs/adrs/proposed/ADR-PROPOSED-kotlin-android-architecture-mvvm.md +23 -0
- package/examples/generated-kotlin-android/docs/adrs/proposed/ADR-PROPOSED-kotlin-android-async-coroutines.md +23 -0
- package/examples/generated-kotlin-android/docs/adrs/proposed/ADR-PROPOSED-kotlin-android-di-hilt.md +23 -0
- package/examples/generated-kotlin-android/docs/adrs/proposed/ADR-PROPOSED-kotlin-android-persistence-room.md +23 -0
- package/examples/generated-kotlin-android/docs/adrs/proposed/ADR-PROPOSED-kotlin-android-platform.md +24 -0
- package/examples/generated-kotlin-android/docs/adrs/proposed/ADR-PROPOSED-kotlin-android-ui-compose.md +23 -0
- package/examples/generated-kotlin-android/docs/ai/AI_AGENTS_SKILLS_MCP_STRATEGY.md +7 -0
- package/examples/generated-kotlin-android/docs/ai/MCP_STRATEGY.md +6 -0
- package/examples/generated-kotlin-android/docs/ai/RECALL_COMMANDS.md +133 -0
- package/examples/generated-kotlin-android/docs/ai/presets/kotlin-android-guidance.md +30 -0
- package/examples/generated-nextjs/.recall/config.json +17 -0
- package/examples/generated-nextjs/.recall/hooks/pre-commit +9 -0
- package/examples/generated-nextjs/AGENTS.md +15 -0
- package/examples/generated-nextjs/CLAUDE.md +7 -0
- package/examples/generated-nextjs/README.md +10 -0
- package/examples/generated-nextjs/docs/00-product/BRD.md +9 -0
- package/examples/generated-nextjs/docs/00-product/PRD.md +13 -0
- package/examples/generated-nextjs/docs/10-architecture/ARCHITECTURE.md +11 -0
- package/examples/generated-nextjs/docs/10-architecture/FILE_WRITE_POLICY.md +8 -0
- package/examples/generated-nextjs/docs/10-architecture/MEMORY_ENGINE.md +16 -0
- package/examples/generated-nextjs/docs/20-security/SECURITY_MODEL.md +11 -0
- package/examples/generated-nextjs/docs/20-security/THREAT_MODEL.md +7 -0
- package/examples/generated-nextjs/docs/30-modules/README.md +17 -0
- package/examples/generated-nextjs/docs/40-features/README.md +22 -0
- package/examples/generated-nextjs/docs/50-quality/QUALITY_GATES.md +11 -0
- package/examples/generated-nextjs/docs/50-quality/TESTING_STRATEGY.md +5 -0
- package/examples/generated-nextjs/docs/60-engineering/AI_AGENT_RULES.md +6 -0
- package/examples/generated-nextjs/docs/60-engineering/ENGINEERING_STANDARDS.md +11 -0
- package/examples/generated-nextjs/docs/adrs/README.md +5 -0
- package/examples/generated-nextjs/docs/adrs/proposed/ADR-PROPOSED-nextjs-data-layer.md +23 -0
- package/examples/generated-nextjs/docs/adrs/proposed/ADR-PROPOSED-nextjs-framework.md +24 -0
- package/examples/generated-nextjs/docs/adrs/proposed/ADR-PROPOSED-nextjs-routing-app-router.md +23 -0
- package/examples/generated-nextjs/docs/adrs/proposed/ADR-PROPOSED-nextjs-styling-tailwind.md +23 -0
- package/examples/generated-nextjs/docs/adrs/proposed/ADR-PROPOSED-nextjs-testing.md +23 -0
- package/examples/generated-nextjs/docs/ai/AI_AGENTS_SKILLS_MCP_STRATEGY.md +7 -0
- package/examples/generated-nextjs/docs/ai/MCP_STRATEGY.md +6 -0
- package/examples/generated-nextjs/docs/ai/RECALL_COMMANDS.md +133 -0
- package/examples/generated-nextjs/docs/ai/presets/nextjs-guidance.md +30 -0
- package/examples/generated-python-fastapi/.recall/config.json +17 -0
- package/examples/generated-python-fastapi/.recall/hooks/pre-commit +9 -0
- package/examples/generated-python-fastapi/AGENTS.md +15 -0
- package/examples/generated-python-fastapi/CLAUDE.md +7 -0
- package/examples/generated-python-fastapi/README.md +11 -0
- package/examples/generated-python-fastapi/docs/00-product/BRD.md +9 -0
- package/examples/generated-python-fastapi/docs/00-product/PRD.md +13 -0
- package/examples/generated-python-fastapi/docs/10-architecture/ARCHITECTURE.md +11 -0
- package/examples/generated-python-fastapi/docs/10-architecture/FILE_WRITE_POLICY.md +8 -0
- package/examples/generated-python-fastapi/docs/10-architecture/MEMORY_ENGINE.md +16 -0
- package/examples/generated-python-fastapi/docs/20-security/SECURITY_MODEL.md +11 -0
- package/examples/generated-python-fastapi/docs/20-security/THREAT_MODEL.md +7 -0
- package/examples/generated-python-fastapi/docs/30-modules/README.md +17 -0
- package/examples/generated-python-fastapi/docs/40-features/README.md +22 -0
- package/examples/generated-python-fastapi/docs/50-quality/QUALITY_GATES.md +11 -0
- package/examples/generated-python-fastapi/docs/50-quality/TESTING_STRATEGY.md +5 -0
- package/examples/generated-python-fastapi/docs/60-engineering/AI_AGENT_RULES.md +6 -0
- package/examples/generated-python-fastapi/docs/60-engineering/ENGINEERING_STANDARDS.md +11 -0
- package/examples/generated-python-fastapi/docs/adrs/README.md +5 -0
- package/examples/generated-python-fastapi/docs/adrs/proposed/ADR-PROPOSED-python-fastapi-cache-redis.md +23 -0
- package/examples/generated-python-fastapi/docs/adrs/proposed/ADR-PROPOSED-python-fastapi-database-postgres.md +23 -0
- package/examples/generated-python-fastapi/docs/adrs/proposed/ADR-PROPOSED-python-fastapi-framework.md +23 -0
- package/examples/generated-python-fastapi/docs/adrs/proposed/ADR-PROPOSED-python-fastapi-testing-pytest.md +23 -0
- package/examples/generated-python-fastapi/docs/adrs/proposed/ADR-PROPOSED-python-fastapi-validation-pydantic.md +23 -0
- package/examples/generated-python-fastapi/docs/ai/AI_AGENTS_SKILLS_MCP_STRATEGY.md +7 -0
- package/examples/generated-python-fastapi/docs/ai/MCP_STRATEGY.md +6 -0
- package/examples/generated-python-fastapi/docs/ai/RECALL_COMMANDS.md +133 -0
- package/examples/generated-python-fastapi/docs/ai/presets/python-fastapi-guidance.md +31 -0
- package/package.json +65 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# iOS Swift Preset Guidance
|
|
2
|
+
|
|
3
|
+
This is proposed guidance, not accepted. Convert any choice you adopt into an accepted ADR in
|
|
4
|
+
repository memory. Until then, treat everything here as a recommendation awaiting human review.
|
|
5
|
+
|
|
6
|
+
## Decision forks this stack forces
|
|
7
|
+
|
|
8
|
+
- UI framework: SwiftUI vs UIKit.
|
|
9
|
+
- Concurrency: Swift async/await with the Observation framework vs Combine.
|
|
10
|
+
- Persistence: SwiftData vs Core Data.
|
|
11
|
+
- Presentation pattern: MVVM vs The Composable Architecture (TCA).
|
|
12
|
+
- Testing: XCTest vs the Swift Testing framework.
|
|
13
|
+
|
|
14
|
+
## Recommended structure (proposed)
|
|
15
|
+
|
|
16
|
+
- Feature folders with view, model, and view-model separation.
|
|
17
|
+
- A dependency layer abstracted behind protocols for testability.
|
|
18
|
+
- Swift Package Manager for modular code.
|
|
19
|
+
|
|
20
|
+
## Testing (proposed)
|
|
21
|
+
|
|
22
|
+
- Unit tests with XCTest or Swift Testing.
|
|
23
|
+
- View-model tests independent of the UI.
|
|
24
|
+
- Snapshot or UI tests for critical flows.
|
|
25
|
+
|
|
26
|
+
## Security considerations (proposed)
|
|
27
|
+
|
|
28
|
+
- Store credentials and tokens in the Keychain, never in source or UserDefaults.
|
|
29
|
+
- Enable App Transport Security and consider certificate pinning.
|
|
30
|
+
- Avoid logging sensitive data.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.0",
|
|
3
|
+
"templateVersion": "0.1.0",
|
|
4
|
+
"preset": "kotlin-android",
|
|
5
|
+
"memoryProfile": "standard",
|
|
6
|
+
"mode": "standard",
|
|
7
|
+
"aiTools": [
|
|
8
|
+
"claude",
|
|
9
|
+
"codex"
|
|
10
|
+
],
|
|
11
|
+
"docsDir": "docs",
|
|
12
|
+
"featuresDir": "docs/40-features",
|
|
13
|
+
"modulesDir": "docs/30-modules",
|
|
14
|
+
"adrDir": "docs/adrs",
|
|
15
|
+
"writePolicy": "skip-existing",
|
|
16
|
+
"preCommitGates": []
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Recall OS pre-commit hook.
|
|
3
|
+
# Generated by `recall init`. Edit gates in .recall/config.json (preCommitGates),
|
|
4
|
+
# then re-run `recall init --force` to regenerate this hook.
|
|
5
|
+
# Enable once per clone with:
|
|
6
|
+
# git config core.hooksPath .recall/hooks
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
recall doctor
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# generated-kotlin-android Agent Instructions
|
|
2
|
+
|
|
3
|
+
This repository uses Recall OS repository memory.
|
|
4
|
+
|
|
5
|
+
Start with durable source-of-truth docs under `docs/`.
|
|
6
|
+
|
|
7
|
+
Required reading:
|
|
8
|
+
|
|
9
|
+
- `docs/00-product/PRD.md`
|
|
10
|
+
- `docs/10-architecture/ARCHITECTURE.md`
|
|
11
|
+
- `docs/20-security/SECURITY_MODEL.md`
|
|
12
|
+
- `docs/50-quality/QUALITY_GATES.md`
|
|
13
|
+
- `docs/60-engineering/ENGINEERING_STANDARDS.md`
|
|
14
|
+
|
|
15
|
+
Repository rules override model preferences. If instructions conflict, stop and report the conflict.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# generated-kotlin-android Claude Instructions
|
|
2
|
+
|
|
3
|
+
Use this file as a short routing guide.
|
|
4
|
+
|
|
5
|
+
The durable project memory lives in `docs/`. Do not rely on chat history as source of truth.
|
|
6
|
+
|
|
7
|
+
Read `AGENTS.md` and the relevant docs before changing code or repository memory.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Kotlin Android Example
|
|
2
|
+
|
|
3
|
+
This folder shows the repository memory generated by:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
recall init --preset kotlin-android
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The Kotlin Android preset adds opinionated, proposed guidance and proposed ADRs for the stack's real
|
|
10
|
+
decision forks (Compose, coroutines and Flow, dependency injection, persistence, and presentation
|
|
11
|
+
pattern). It does not create application code or silently accept architecture choices.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Repository Memory
|
|
2
|
+
|
|
3
|
+
Repository memory is the durable source of truth for humans and AI agents.
|
|
4
|
+
|
|
5
|
+
Source-of-truth order:
|
|
6
|
+
|
|
7
|
+
1. Accepted ADRs and repository decisions
|
|
8
|
+
2. Architecture docs
|
|
9
|
+
3. Engineering standards
|
|
10
|
+
4. Current PRD and accepted change requests
|
|
11
|
+
5. Security and testing docs
|
|
12
|
+
6. Module docs
|
|
13
|
+
7. Feature plans
|
|
14
|
+
8. Task files
|
|
15
|
+
9. External context
|
|
16
|
+
10. Chat history
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Module Memory
|
|
2
|
+
|
|
3
|
+
Module memory records what each important module owns, how it should be tested, and which decisions
|
|
4
|
+
affect it.
|
|
5
|
+
|
|
6
|
+
Future module folders should use:
|
|
7
|
+
|
|
8
|
+
```txt
|
|
9
|
+
docs/30-modules/<module>/
|
|
10
|
+
MODULE.md
|
|
11
|
+
TASKS.md
|
|
12
|
+
TEST_PLAN.md
|
|
13
|
+
DECISIONS.md
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Agents should update module memory when implementation changes responsibilities, boundaries, tests,
|
|
17
|
+
risks, or decisions.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Feature Memory
|
|
2
|
+
|
|
3
|
+
Feature memory records requirements, acceptance criteria, plans, tests, reviews, and completion
|
|
4
|
+
evidence.
|
|
5
|
+
|
|
6
|
+
Future feature folders should use:
|
|
7
|
+
|
|
8
|
+
```txt
|
|
9
|
+
docs/40-features/F-###-<feature>/
|
|
10
|
+
PRD.md
|
|
11
|
+
ACCEPTANCE.md
|
|
12
|
+
ARCHITECTURE_IMPACT.md
|
|
13
|
+
CHANGE_REQUESTS.md
|
|
14
|
+
PLAN.md
|
|
15
|
+
TASKS.md
|
|
16
|
+
TEST_PLAN.md
|
|
17
|
+
REVIEW.md
|
|
18
|
+
COMPLETION_REPORT.md
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Agents should not implement meaningful feature work without a feature plan or clear source-of-truth
|
|
22
|
+
reference.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Engineering Standards
|
|
2
|
+
|
|
3
|
+
Repository rules override model preferences.
|
|
4
|
+
|
|
5
|
+
Baseline rules:
|
|
6
|
+
|
|
7
|
+
- Never commit secrets.
|
|
8
|
+
- Keep changes scoped.
|
|
9
|
+
- Update docs when behavior or architecture changes.
|
|
10
|
+
- Add tests or document why tests were skipped.
|
|
11
|
+
- Do not claim completion without evidence.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Proposed ADR: Use MVVM
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Proposed
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
The app needs a presentation architecture for separating UI from logic.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
Consider MVVM with unidirectional state from ViewModels, awaiting human acceptance.
|
|
14
|
+
|
|
15
|
+
## Alternatives Considered
|
|
16
|
+
|
|
17
|
+
- MVI with explicit intents and reducers.
|
|
18
|
+
- Plain ViewModels without a strict pattern.
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- Clear separation of UI and state.
|
|
23
|
+
- Teams must agree on state and event conventions.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Proposed ADR: Use Coroutines and Flow
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Proposed
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
The app needs a concurrency and reactive streams approach.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
Consider Kotlin Coroutines with Flow for asynchronous work and streams, awaiting human acceptance.
|
|
14
|
+
|
|
15
|
+
## Alternatives Considered
|
|
16
|
+
|
|
17
|
+
- RxJava/RxKotlin.
|
|
18
|
+
- Callbacks and `LiveData` only.
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- Structured concurrency and cancellation.
|
|
23
|
+
- Requires discipline around dispatchers and scope.
|
package/examples/generated-kotlin-android/docs/adrs/proposed/ADR-PROPOSED-kotlin-android-di-hilt.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Proposed ADR: Use Hilt
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Proposed
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
The app needs a dependency injection approach for testability and lifecycle scoping.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
Consider Hilt for dependency injection, awaiting human acceptance.
|
|
14
|
+
|
|
15
|
+
## Alternatives Considered
|
|
16
|
+
|
|
17
|
+
- Koin.
|
|
18
|
+
- Manual constructor injection.
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- Compile-time validation and Android lifecycle scopes.
|
|
23
|
+
- Adds annotation processing to the build.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Proposed ADR: Use Room
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Proposed
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
The app needs structured local persistence.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
Consider Room for local relational persistence, awaiting human acceptance.
|
|
14
|
+
|
|
15
|
+
## Alternatives Considered
|
|
16
|
+
|
|
17
|
+
- SQLDelight.
|
|
18
|
+
- DataStore for simple key-value needs.
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- Compile-time verified SQL and Flow integration.
|
|
23
|
+
- Schema migrations must be maintained.
|
package/examples/generated-kotlin-android/docs/adrs/proposed/ADR-PROPOSED-kotlin-android-platform.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Proposed ADR: Use Kotlin for Android
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Proposed
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
The team needs a primary language and platform for the Android application.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
Consider Kotlin as the Android application language. This is not accepted until a human reviews and
|
|
14
|
+
accepts it.
|
|
15
|
+
|
|
16
|
+
## Alternatives Considered
|
|
17
|
+
|
|
18
|
+
- Java for Android.
|
|
19
|
+
- A cross-platform stack such as Flutter or React Native.
|
|
20
|
+
|
|
21
|
+
## Consequences
|
|
22
|
+
|
|
23
|
+
- Idiomatic Android APIs and coroutines support.
|
|
24
|
+
- Requires Kotlin proficiency across the team.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Proposed ADR: Use Jetpack Compose
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Proposed
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
The app needs a UI toolkit. Compose and the legacy View/XML system are the main options.
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
Consider Jetpack Compose as the UI toolkit, awaiting human acceptance.
|
|
14
|
+
|
|
15
|
+
## Alternatives Considered
|
|
16
|
+
|
|
17
|
+
- Android Views with XML layouts.
|
|
18
|
+
- A hybrid of Compose and Views during migration.
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- Declarative UI and less boilerplate.
|
|
23
|
+
- Requires Compose tooling and team ramp-up.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Recall OS Commands
|
|
2
|
+
|
|
3
|
+
This document records the Recall OS commands available to humans and AI agents.
|
|
4
|
+
|
|
5
|
+
## Completion Gate
|
|
6
|
+
|
|
7
|
+
Before claiming implementation work is complete, run:
|
|
8
|
+
|
|
9
|
+
```txt
|
|
10
|
+
pnpm test:run
|
|
11
|
+
pnpm typecheck
|
|
12
|
+
recall doctor
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
If `recall doctor` reports errors, fix them or report why they cannot be fixed. If it reports
|
|
16
|
+
warnings, address them or record why they are acceptable.
|
|
17
|
+
|
|
18
|
+
Package binary behavior is covered by binary integration tests.
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
### `recall init`
|
|
23
|
+
|
|
24
|
+
Initialize neutral repository memory.
|
|
25
|
+
|
|
26
|
+
Options:
|
|
27
|
+
|
|
28
|
+
- `--preset <id>`: apply optional preset guidance and proposed decisions.
|
|
29
|
+
- `--dry-run`: show planned writes without writing files.
|
|
30
|
+
- `--force`: overwrite existing files explicitly.
|
|
31
|
+
- `--reinit`: required with `--force` to overwrite an existing Recall OS installation (a directory
|
|
32
|
+
that already has `.recall/config.json`). Without it, `--force` refuses, protecting existing
|
|
33
|
+
repository memory.
|
|
34
|
+
|
|
35
|
+
Init also generates a tracked pre-commit hook at `.recall/hooks/pre-commit` that runs
|
|
36
|
+
`recall doctor` plus any `preCommitGates` in `.recall/config.json`. Init proposes, but does not run,
|
|
37
|
+
the activation command `git config core.hooksPath .recall/hooks`.
|
|
38
|
+
|
|
39
|
+
### `recall adopt`
|
|
40
|
+
|
|
41
|
+
Inspect an existing repository through read-only manifest and marker files, then write a proposed
|
|
42
|
+
adoption report and proposed framework ADRs for human review. Adopt never executes repository code
|
|
43
|
+
and never produces accepted memory.
|
|
44
|
+
|
|
45
|
+
Options:
|
|
46
|
+
|
|
47
|
+
- `--dry-run`: show planned writes without writing files.
|
|
48
|
+
- `--force`: overwrite existing files explicitly.
|
|
49
|
+
|
|
50
|
+
### `recall skill create <name>`
|
|
51
|
+
|
|
52
|
+
Generate a portable AI agent skill as `SKILL.md` for both Claude Code (`.claude/skills/`) and the
|
|
53
|
+
portable Agent Skills target (`.agents/skills/`). Known names use the built-in catalog; unknown
|
|
54
|
+
names produce a valid skeleton. Generated skills contain no scripts.
|
|
55
|
+
|
|
56
|
+
Options:
|
|
57
|
+
|
|
58
|
+
- `--dry-run`: show planned writes without writing files.
|
|
59
|
+
- `--force`: overwrite existing files explicitly.
|
|
60
|
+
|
|
61
|
+
### `recall skill list`
|
|
62
|
+
|
|
63
|
+
List the built-in catalog skills.
|
|
64
|
+
|
|
65
|
+
### `recall mcp add <server>`
|
|
66
|
+
|
|
67
|
+
Generate offline, proposed memory for an MCP server (for example `figma`) as
|
|
68
|
+
`docs/ai/mcp/<server>.md` plus a proposed adoption ADR. Recall OS never connects to the MCP server
|
|
69
|
+
or makes network calls; the agent records durable MCP-derived context into the generated memory for
|
|
70
|
+
human review. It also installs a `capture-mcp-context` agent skill that prompts the agent to record
|
|
71
|
+
that context.
|
|
72
|
+
|
|
73
|
+
Options:
|
|
74
|
+
|
|
75
|
+
- `--dry-run`: show planned writes without writing files.
|
|
76
|
+
- `--force`: overwrite existing files explicitly.
|
|
77
|
+
|
|
78
|
+
### `recall preset list`
|
|
79
|
+
|
|
80
|
+
List built-in presets.
|
|
81
|
+
|
|
82
|
+
### `recall feature create <name>`
|
|
83
|
+
|
|
84
|
+
Create feature memory docs under the configured features directory.
|
|
85
|
+
|
|
86
|
+
Options:
|
|
87
|
+
|
|
88
|
+
- `--dry-run`: show planned writes without writing files.
|
|
89
|
+
- `--force`: overwrite existing files explicitly.
|
|
90
|
+
|
|
91
|
+
### `recall adr create <title>`
|
|
92
|
+
|
|
93
|
+
Create a proposed ADR under the configured ADR directory.
|
|
94
|
+
|
|
95
|
+
Options:
|
|
96
|
+
|
|
97
|
+
- `--dry-run`: show planned writes without writing files.
|
|
98
|
+
- `--force`: overwrite existing files explicitly.
|
|
99
|
+
|
|
100
|
+
### `recall adr accept <name>`
|
|
101
|
+
|
|
102
|
+
Promote a proposed ADR to accepted repository memory. A proposal under
|
|
103
|
+
`docs/adrs/proposed/ADR-PROPOSED-<slug>.md` becomes a numbered, accepted `ADR-####-<slug>.md` and
|
|
104
|
+
the proposal is removed; an existing numbered Proposed ADR is accepted in place.
|
|
105
|
+
|
|
106
|
+
Options:
|
|
107
|
+
|
|
108
|
+
- `--dry-run`: show planned writes without writing files.
|
|
109
|
+
- `--force`: overwrite existing files explicitly.
|
|
110
|
+
|
|
111
|
+
### `recall module create <name>`
|
|
112
|
+
|
|
113
|
+
Create module memory docs under the configured modules directory.
|
|
114
|
+
|
|
115
|
+
Options:
|
|
116
|
+
|
|
117
|
+
- `--dry-run`: show planned writes without writing files.
|
|
118
|
+
- `--force`: overwrite existing files explicitly.
|
|
119
|
+
|
|
120
|
+
### `recall doctor`
|
|
121
|
+
|
|
122
|
+
Check whether repository memory is structurally healthy enough for AI-assisted work, whether basic
|
|
123
|
+
engineering evidence is present, and whether memory references decisions that exist and are
|
|
124
|
+
accepted.
|
|
125
|
+
|
|
126
|
+
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.
|
|
128
|
+
|
|
129
|
+
Exit codes:
|
|
130
|
+
|
|
131
|
+
- `0`: healthy
|
|
132
|
+
- `1`: warnings only
|
|
133
|
+
- `2`: errors
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Kotlin Android Preset Guidance
|
|
2
|
+
|
|
3
|
+
This guidance is proposed, not accepted. Convert any choice you adopt into an accepted ADR in
|
|
4
|
+
repository memory. Until then, treat everything here as a recommendation awaiting human review.
|
|
5
|
+
|
|
6
|
+
## Decision forks this stack forces
|
|
7
|
+
|
|
8
|
+
- UI toolkit: Jetpack Compose vs Android Views/XML.
|
|
9
|
+
- Asynchrony: Kotlin Coroutines and Flow vs RxJava/callbacks.
|
|
10
|
+
- Dependency injection: Hilt vs Koin vs manual.
|
|
11
|
+
- Local persistence: Room vs SQLDelight vs DataStore.
|
|
12
|
+
- Presentation pattern: MVVM vs MVI.
|
|
13
|
+
|
|
14
|
+
## Recommended structure (proposed)
|
|
15
|
+
|
|
16
|
+
- Feature-based modules or packages (`feature/`, `core/`, `data/`, `ui/`).
|
|
17
|
+
- A repository layer between ViewModels and data sources.
|
|
18
|
+
- Immutable UI state exposed as `StateFlow` from ViewModels.
|
|
19
|
+
|
|
20
|
+
## Testing (proposed)
|
|
21
|
+
|
|
22
|
+
- Unit tests with JUnit5 and coroutine test dispatchers.
|
|
23
|
+
- Flow assertions with Turbine.
|
|
24
|
+
- UI tests with Compose UI testing or Espresso.
|
|
25
|
+
|
|
26
|
+
## Security considerations (proposed)
|
|
27
|
+
|
|
28
|
+
- Store secrets with the Android Keystore, never in source or version control.
|
|
29
|
+
- Use EncryptedSharedPreferences or DataStore with encryption for sensitive local data.
|
|
30
|
+
- Enforce network security config and certificate pinning where appropriate.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1.0",
|
|
3
|
+
"templateVersion": "0.1.0",
|
|
4
|
+
"preset": "nextjs",
|
|
5
|
+
"memoryProfile": "standard",
|
|
6
|
+
"mode": "standard",
|
|
7
|
+
"aiTools": [
|
|
8
|
+
"claude",
|
|
9
|
+
"codex"
|
|
10
|
+
],
|
|
11
|
+
"docsDir": "docs",
|
|
12
|
+
"featuresDir": "docs/40-features",
|
|
13
|
+
"modulesDir": "docs/30-modules",
|
|
14
|
+
"adrDir": "docs/adrs",
|
|
15
|
+
"writePolicy": "skip-existing",
|
|
16
|
+
"preCommitGates": []
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Recall OS pre-commit hook.
|
|
3
|
+
# Generated by `recall init`. Edit gates in .recall/config.json (preCommitGates),
|
|
4
|
+
# then re-run `recall init --force` to regenerate this hook.
|
|
5
|
+
# Enable once per clone with:
|
|
6
|
+
# git config core.hooksPath .recall/hooks
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
recall doctor
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# generated-nextjs Agent Instructions
|
|
2
|
+
|
|
3
|
+
This repository uses Recall OS repository memory.
|
|
4
|
+
|
|
5
|
+
Start with durable source-of-truth docs under `docs/`.
|
|
6
|
+
|
|
7
|
+
Required reading:
|
|
8
|
+
|
|
9
|
+
- `docs/00-product/PRD.md`
|
|
10
|
+
- `docs/10-architecture/ARCHITECTURE.md`
|
|
11
|
+
- `docs/20-security/SECURITY_MODEL.md`
|
|
12
|
+
- `docs/50-quality/QUALITY_GATES.md`
|
|
13
|
+
- `docs/60-engineering/ENGINEERING_STANDARDS.md`
|
|
14
|
+
|
|
15
|
+
Repository rules override model preferences. If instructions conflict, stop and report the conflict.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Next.js Example
|
|
2
|
+
|
|
3
|
+
This folder shows the repository memory generated by:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
recall init --preset nextjs
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The Next.js preset adds framework-aware guidance and proposed decisions. Those decisions remain
|
|
10
|
+
proposed until a human accepts them in repository memory.
|