All checks were successful
Pipeline / UI Lint (push) Successful in 59s
Pipeline / API Unit Tests (push) Successful in 19s
Pipeline / API Lint (push) Successful in 9s
Pipeline / UI Tests (push) Successful in 1m34s
Pipeline / API Integration Tests (push) Successful in 28s
Pipeline / Build & Push API Image (push) Has been skipped
Pipeline / Build & Push UI Image (push) Has been skipped
82 lines
3.0 KiB
Markdown
82 lines
3.0 KiB
Markdown
# spec-kit-memory-loader
|
|
|
|
A [Spec Kit](https://github.com/github/spec-kit) extension that loads `.specify/memory/` files before spec-kit lifecycle commands so LLM agents have project governance context (constitution, glossary, conventions, resource standards).
|
|
|
|
## Problem
|
|
|
|
Spec-kit lifecycle commands (`/speckit.specify`, `/speckit.plan`, `/speckit.implement`, etc.) execute without awareness of project-specific governance documents stored in `.specify/memory/`. This means:
|
|
|
|
- Constitution principles are not consulted during specification
|
|
- Glossary terms are not available during planning
|
|
- Coding conventions are missed during implementation
|
|
- Resource standards are ignored during task generation
|
|
|
|
## Solution
|
|
|
|
The Memory Loader extension registers `before_*` hooks on all major spec-kit lifecycle commands. Before each command runs, it reads every `.md` file from `.specify/memory/` and outputs their contents, giving the LLM agent full governance context.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# From release
|
|
specify extension add memory-loader --from https://github.com/KevinBrown5280/spec-kit-memory-loader/archive/refs/tags/v1.0.0.zip
|
|
|
|
# From main branch
|
|
specify extension add memory-loader --from https://github.com/KevinBrown5280/spec-kit-memory-loader/archive/refs/heads/main.zip
|
|
|
|
# Development mode (local clone)
|
|
specify extension add --dev /path/to/spec-kit-memory-loader
|
|
```
|
|
|
|
## Commands
|
|
|
|
| Command | Description | Modifies Files? |
|
|
|---------|-------------|-----------------|
|
|
| `speckit.memory-loader.load` | Read all project memory files and output their contents for context | No — read-only |
|
|
|
|
## How It Works
|
|
|
|
1. **Gather**: Reads every `.md` file from `.specify/memory/`
|
|
- If the directory does not exist, skips silently
|
|
- If a file cannot be read, skips it and continues
|
|
|
|
2. **Output**: For each file, prints a headed section:
|
|
```
|
|
## Memory: {filename}
|
|
|
|
{file contents}
|
|
```
|
|
|
|
3. **Summarize**: After all files, outputs:
|
|
```
|
|
Context loaded: {memory_count} memory files
|
|
```
|
|
|
|
## Hooks
|
|
|
|
The extension fires automatically before these lifecycle commands:
|
|
|
|
| Hook | Command | Description |
|
|
|------|---------|-------------|
|
|
| `before_specify` | `speckit.memory-loader.load` | Load context before specification |
|
|
| `before_plan` | `speckit.memory-loader.load` | Load context before planning |
|
|
| `before_tasks` | `speckit.memory-loader.load` | Load context before task generation |
|
|
| `before_implement` | `speckit.memory-loader.load` | Load context before implementation |
|
|
| `before_clarify` | `speckit.memory-loader.load` | Load context before clarification |
|
|
| `before_checklist` | `speckit.memory-loader.load` | Load context before checklist generation |
|
|
| `before_analyze` | `speckit.memory-loader.load` | Load context before analysis |
|
|
|
|
## Design Decisions
|
|
|
|
- **Read-only** — never modifies any files
|
|
- **Graceful degradation** — missing directory or unreadable files are skipped silently
|
|
- **Governance only** — loads project-level memory; feature-specific reference docs are handled separately by a companion extension
|
|
|
|
## Requirements
|
|
|
|
- Spec Kit >= 0.6.0
|
|
|
|
## License
|
|
|
|
MIT
|