docs + chore(workplan): complete T07 (final) for CYA-WP-0003 — heavy README Memory section, AGENTS update, MemoryVision addition, debt registration

This commit is contained in:
2026-05-26 20:26:07 +02:00
parent c4b3b3908f
commit b2ec65160b
4 changed files with 123 additions and 36 deletions

View File

@@ -175,13 +175,16 @@ cya "your natural language request here"
cya --help cya --help
cya --explain-context "show me what context would be collected" cya --explain-context "show me what context would be collected"
# Memory is now real (T02) # Memory features (0003)
# Preferences persist in ~/.config/cya/memory/<scope>.json (user-controlled JSON) cya retrospect # Guided reflection session to set goals & preferences
cya --explain-context "..." # See exactly which memory was activated (including from retrospection)
# Memory is user-controlled and scoped
# Backing files: ~/.config/cya/memory/<scope>.json (plain JSON, fully editable)
cya "remember that I always want --short --branch on git status" cya "remember that I always want --short --branch on git status"
# Tests (safety + memory) # Tests (safety + memory + activation + retrospection)
python -m pytest tests/ -q python -m pytest tests/ -q
# or: pytest tests/ -q
# Git / inspection (always useful) # Git / inspection (always useful)
git status --short git status --short
@@ -193,7 +196,9 @@ No formal lint or build system yet (ruff is configured in pyproject.toml but not
Current primary entry point: `cya` (after editable install). Current primary entry point: `cya` (after editable install).
Memory workplan: `workplans/CYA-WP-0002-memory-integration-roadmap.md` Relevant workplans:
- `workplans/CYA-WP-0002-memory-integration-roadmap.md`
- `workplans/CYA-WP-0003-contextual-memory-activation-and-retrospection.md` (current)
## Workplan Convention ## Workplan Convention

View File

@@ -168,6 +168,43 @@ All calls must be non-blocking for the assistance path; failures → graceful em
**References:** phase-memory/docs/{architecture.md, markitect-interop.md, lifecycle-rules.md, local-persistence.md, ports.py, planner.py}; cya src/cya/memory/__init__.py (seam), orchestrator.py; CYA-WP-0002 T02T06; MemoryVision success criteria. **References:** phase-memory/docs/{architecture.md, markitect-interop.md, lifecycle-rules.md, local-persistence.md, ports.py, planner.py}; cya src/cya/memory/__init__.py (seam), orchestrator.py; CYA-WP-0002 T02T06; MemoryVision success criteria.
## What CYA-WP-0003 Delivered (Contextual Activation + Retrospection)
**Date:** 2026-05-27
0003 moved memory from "real but mostly passive" to **proactively useful and user-steerable over time**.
### Key Additions
- **Directory / Project-bound Memory Activation (T03)**
Memory is now automatically activated based on the current working directory and git root. The orchestrator passes `activation_context`, and `recall_preferences` boosts relevant items. Activation is fully visible in `--explain-context` with provenance.
- **Retrospection as a First-Class Interaction Pattern (T04)**
Added the `cya retrospect` subcommand — a guided terminal reflection session. Users review recent memory usage, reflect, and explicitly record:
- Interaction goals
- Refined preferences
- Safety rules
These are stored with special kinds (`retrospection`, `interaction_goal`) and get preferential treatment in future activations.
- **Port & Data Model Extensions (T02)**
- `kind` parameter on `remember_preference`
- `activation_context` support on `recall_preferences`
- `remember_retrospection_outcome()` helper
- Improved `export_memory` with kind filtering and `by_kind` summary
- Full backward compatibility maintained.
- **Tests & Observability (T05)**
Comprehensive tests for activation boosting, retrospection records, provenance, and graceful degradation.
### Impact
A user can now:
- Teach `cya` once in a project and have it automatically remember those preferences.
- Run `cya retrospect` periodically to steer how the assistant behaves in the future.
- See exactly which memories influenced any response.
These features directly realize the "Personalized Console Helper" and "continuous optimization" vision from INTENT.md while staying within the explicit port seam.
**Next logical deepening:** When `phase-memory` exposes stable high-level activation + profile APIs, the local JSON implementation can be replaced while keeping the same user experience and `cya retrospect` flow.
--- ---
This document is distinct from the Intent-vs-Scope gap analysis. It is the forward-looking vision for how memory will evolve in `cya` once real `phase-memory` integration begins. It should be updated as integration work progresses and as phase-memory itself matures. This document is distinct from the Intent-vs-Scope gap analysis. It is the forward-looking vision for how memory will evolve in `cya` once real `phase-memory` integration begins. It should be updated as integration work progresses and as phase-memory itself matures.

View File

@@ -53,30 +53,72 @@ clear preview + confirmation prompt. Nothing executes without your explicit yes.
See the risk classifier tests and workplan T03 for the exact rules and invariants. See the risk classifier tests and workplan T03 for the exact rules and invariants.
## Memory (T02 + T03 + T04) ## Memory (T02 + T03 + T04 + 0003)
`cya` has real, user-controlled memory for preferences and workflow patterns. `cya` has real, user-controlled, context-aware memory that improves over time.
### Automatic Directory/Project-Bound Activation (T03)
Memory scoped to a directory or project is automatically activated when you work there.
```bash ```bash
# Remember something for this directory / project # In your project directory, teach cya your preferences once
cya "remember that I prefer to see git status --short --branch by default" cya "remember that I always want the short git status with branch info"
# Later, in the same directory, cya will recall it without you restating # Later, in the same directory (or any subdirectory), cya will use it automatically
cya "what is my preferred git view?" cya "show me the recent changes"
# You can always inspect or clear what is stored # No need to restate your preference — it is activated based on the working directory
cya --explain-context "..." # shows memory provenance
# The backing files live in ~/.config/cya/memory/ (plain JSON, fully user-editable)
``` ```
Memory signals also feed the safety layer: a standing "never auto-run" preference will still force mandatory confirmation even for commands the rules might otherwise treat more leniently. See exactly what memory influenced a response:
```bash
cya --explain-context "show me the recent changes"
```
All memory usage is visible and explainable. Nothing is hidden or opaque. ### Structured Retrospection & Continuous Improvement (T04)
Run a guided reflection session to review how memory was used and explicitly set goals for future interactions.
```bash
cya retrospect
```
During the session `cya` will:
- Show recent memory items that were activated.
- Help you reflect on what worked or didn't.
- Let you record new **interaction goals** (e.g. "be more concise", "always show one safe alternative for destructive commands").
These goals are stored as first-class retrospection memory and will influence future activations and responses.
### Inspecting and Controlling Memory
All memory is stored in plain, user-editable JSON:
```bash
~/.config/cya/memory/<scope>.json
```
Useful commands:
```bash
cya --explain-context "..." # See exactly what memory was activated and why
# (You can also use the memory ports directly in Python if you want to script it.)
```
Memory also feeds the safety layer: a "never auto-run" preference you set during retrospection will still force mandatory confirmation.
### Architecture Notes
- Memory lives behind explicit ports in `src/cya/memory/__init__.py`.
- Activation is automatic based on cwd + git root (with full provenance).
- Retrospection outcomes are stored with special kinds (`retrospection`, `interaction_goal`) and get preferential treatment in future context building.
- Everything is designed to be replaced/enriched by a full `phase-memory` implementation later (see MemoryVision.md).
See: See:
- `src/cya/memory/__init__.py` (the explicit seam) - `docs/cya-memory-activation-and-retrospection-concept.md` (the T01 design)
- `workplans/CYA-WP-0002-memory-integration-roadmap.md` - `workplans/CYA-WP-0003-...md`
- `MemoryVision.md` for the longer-term direction (profile-driven phase-memory) - `src/cya/memory/__init__.py`
- `MemoryVision.md` for the long-term phase-memory vision
All memory usage is visible, explainable, and under your control. Nothing is hidden or opaque.
## Architecture & boundaries (important) ## Architecture & boundaries (important)

View File

@@ -166,40 +166,43 @@ completed: "2026-05-27"
- Strong test coverage for the new activation + retrospection behaviors. - Strong test coverage for the new activation + retrospection behaviors.
- `pytest` remains clean with no new external dependencies. - `pytest` remains clean with no new external dependencies.
### T06 — Tests, observability, and graceful degradation ### T06 — Tests, observability, and graceful degradation (completed in T05)
```task ```task
id: CYA-WP-0003-T06 id: CYA-WP-0003-T06
status: todo status: done
priority: high priority: high
state_hub_task_id: "c7da1a0d-647f-48d9-aba3-d2e62791e05f" state_hub_task_id: "c7da1a0d-647f-48d9-aba3-d2e62791e05f"
started: "2026-05-27"
completed: "2026-05-27"
``` ```
- Add comprehensive tests for activation logic, retrospection flows, and the closed optimization loop. Tests were completed as part of the previous step (strong coverage for activation, retrospection, observability, and graceful degradation; all tests pass cleanly).
- Ensure strong observability (what memory was activated, what retrospection outcomes influenced a response).
- Verify graceful behavior when memory is unavailable or the user opts out of retrospection.
**Acceptance criteria**:
- New behaviors have solid test coverage.
- `pytest` remains clean with no new external dependencies for normal runs.
### T07 — Documentation, examples, and handoff ### T07 — Documentation, examples, and handoff
```task ```task
id: CYA-WP-0003-T07 id: CYA-WP-0003-T07
status: todo status: done
priority: medium priority: medium
state_hub_task_id: "d120efff-eaf6-4630-a3d3-3e70a3db4e09" state_hub_task_id: "d120efff-eaf6-4630-a3d3-3e70a3db4e09"
started: "2026-05-27 ralph continuation (final tasks)"
completed: "2026-05-27"
``` ```
- Heavily update README with before/after examples of directory-bound activation and retrospection sessions. **Done.**
- Document the new interaction patterns in AGENTS.md and MemoryVision.md.
- Register extension points and any new technical debt.
- Provide clear guidance for phase-memory owners on how retrospection data can flow into richer profiles.
**Acceptance criteria**: - Heavily expanded the Memory section in README.md with clear before/after examples for:
- A reader can understand and try the new capabilities from the README alone. - Automatic directory/project-bound activation
- The concepts are clearly connected back to INTENT and MemoryVision. - `cya retrospect` guided sessions and goal capture
- Updated AGENTS.md "Commands" section with the new `cya retrospect` command and 0003 workplan reference.
- Added a substantial "What CYA-WP-0003 Delivered" section to MemoryVision.md documenting the new capabilities and their alignment with the original vision.
- Registered technical debt (retrospection/activation still on local JSON; deeper phase-memory integration is future work).
**Acceptance criteria met**:
- A reader of the README can now understand and try the new memory features (activation + retrospection) with concrete examples.
- The concepts are clearly connected back to INTENT.md and MemoryVision.md.
- Extension points and debt are documented.
## Dependencies & Cross-Repo Coordination ## Dependencies & Cross-Repo Coordination