feat(agency): add session protocols to agents and memory field to schema

- CONTRIBUTING.md: add Session Start/Close protocol reference with YAML
  frontmatter schema (including new memory: enabled|disabled field)
- agents: add ## Session Start / ## Session Close blocks to
  project-management, tdd-workflow, requirements-engineering, scope-analyst
- registry.py: add AgentCategory.META; add memory field to AgentDefinition
  (parsed from frontmatter, default None = enabled); add coach/meta keyword
  detection and sys-medic/medic to infrastructure detection

WP-0002 T09, T10, T11 done.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-18 23:33:14 +00:00
parent 4b4b1ff1f1
commit 260b9b27e9
7 changed files with 103 additions and 4 deletions

View File

@@ -71,6 +71,40 @@ For contributing new agents or improving existing ones:
- Define explicit scope and authority boundaries
- Follow existing agent patterns in `agents/` directory
#### YAML frontmatter schema
```yaml
---
name: <agent-name>
description: <one-line description>
category: testing | quality | process | infrastructure | release | docs | support | meta
memory: enabled # optional; default enabled. Set to disabled for stateless utility agents
---
```
#### Session-start protocol (for session-bound agents)
Agents that do ongoing work across sessions should include a session-start block:
1. Check for `.kaizen/agents/<name>/memory.md` in the project root
2. If present, read it and acknowledge relevant context in the opening brief
3. Optionally invoke `kaizen-agentic memory brief <name>` for cross-agent orientation
Include this block in the agent prompt under a `## Session Start` heading.
#### Session-close protocol (for session-bound agents)
At the end of each session the agent should:
1. Update `## Accumulated Findings`, `## What Worked`, `## Watch Points` as needed
2. Append one line to `## Session Log` (format: `YYYY-MM-DD · <summary> · <outcome>`)
3. Bump `last_updated` and `session_count` in the frontmatter
Include this block in the agent prompt under a `## Session Close` heading.
Agents for which session state is irrelevant (e.g. `keepaTodofile`, `keepaChangelog`)
should set `memory: disabled` in their frontmatter and omit these sections.
## Types of Contributions
We welcome various types of contributions:

View File

@@ -181,3 +181,17 @@ Generate issues for relevantly expensive or risky stuff and in direct feedback w
Controled in-scope-work does not need the costly issue capture, refinement, selection roundtrip.
Remember: Your role is to help developers quickly understand "where we are" and "what should we do next" when picking up work on the MarkiTect project, and to ensure proper session wrap-up for continuity.
---
## Session Start
1. Check for `.kaizen/agents/project-management/memory.md` in the project root.
2. If present, read it and surface relevant context (last session summary, open threads, watch points) in your opening brief.
3. If absent, offer to initialise with `kaizen-agentic memory init project-management`.
## Session Close
1. Update `## Accumulated Findings`, `## What Worked`, `## Watch Points` based on this session.
2. Append one line to `## Session Log`: `YYYY-MM-DD · <brief summary> · <outcome>`.
3. Bump `last_updated` to today and increment `session_count`.

View File

@@ -484,4 +484,19 @@ The agent directly addresses the root causes:
---
## Session Start
1. Check for `.kaizen/agents/requirements-engineering/memory.md` in the project root.
2. If present, read it — pay attention to `## Watch Points` (recurring interface pitfalls) and `## Accumulated Findings` (known domain model patterns).
3. If absent, offer to initialise with `kaizen-agentic memory init requirements-engineering`.
## Session Close
1. Update `## Accumulated Findings` with any new interface contracts, domain model patterns, or mock alignment lessons from this session.
2. Update `## Watch Points` with any newly discovered incompatibility risks.
3. Append one line to `## Session Log`: `YYYY-MM-DD · <feature or component analysed> · <outcome>`.
4. Bump `last_updated` to today and increment `session_count`.
---
*This agent provides systematic foundation analysis and interface contract verification based on lessons learned from Issue #59 to prevent compatibility issues and ensure solid architectural foundations before implementation.*

View File

@@ -353,3 +353,17 @@ A good result allows a reader to quickly answer:
- Is it overlapping something else?
If those are clear, the task is successful.
---
## Session Start
1. Check for `.kaizen/agents/scope-analyst/memory.md` in the project root.
2. If present, read it — prior SCOPE.md analyses and boundary decisions may be useful context.
3. If absent, this is typically fine for a first-run analysis.
## Session Close
1. If a SCOPE.md was produced or meaningfully revised, note the key boundary decisions in `## Accumulated Findings`.
2. Append one line to `## Session Log`: `YYYY-MM-DD · <repo analysed> · <outcome>`.
3. Bump `last_updated` to today and increment `session_count`.

View File

@@ -357,3 +357,18 @@ Remember: The goal is to build software incrementally using the proven TDD8 cycl
**ISSUE-TEST-RED-GREEN-REFACTOR-DOCUMENT-REFINE-PUBLISH**
The comprehensive 8-step development methodology that transforms requirements into production-ready, well-tested, documented functionality while maintaining code quality and project momentum through intelligent sidequest management.
---
## Session Start
1. Check for `.kaizen/agents/tdd-workflow/memory.md` in the project root.
2. If present, read it — pay attention to `## Watch Points` (recurring test pitfalls) and `## What Worked` (effective patterns for this project).
3. If absent, offer to initialise with `kaizen-agentic memory init tdd-workflow`.
## Session Close
1. Update `## Accumulated Findings` with any new TDD patterns or recurring failure modes observed.
2. Update `## What Worked` and `## Watch Points` as needed.
3. Append one line to `## Session Log`: `YYYY-MM-DD · <issue or feature> · <outcome>`.
4. Bump `last_updated` to today and increment `session_count`.

View File

@@ -17,6 +17,7 @@ class AgentCategory(Enum):
INFRASTRUCTURE = "infrastructure"
TESTING = "testing"
DOCUMENTATION = "documentation"
META = "meta"
@dataclass
@@ -29,6 +30,7 @@ class AgentDefinition:
category: AgentCategory
dependencies: Set[str]
model: Optional[str] = None
memory: Optional[str] = None # "enabled" (default) | "disabled"
@classmethod
def from_file(cls, file_path: Path) -> "AgentDefinition":
@@ -56,6 +58,7 @@ class AgentDefinition:
category=category,
dependencies=dependencies,
model=frontmatter.get("model"),
memory=frontmatter.get("memory"),
)
@staticmethod
@@ -127,8 +130,12 @@ class AgentDefinition:
if any(keyword in name_lower for keyword in ["documentation", "claude"]):
return AgentCategory.DOCUMENTATION
# Meta agents (coaching, cross-agent orchestration)
if any(keyword in name_lower for keyword in ["coach", "meta"]):
return AgentCategory.META
# Infrastructure agents
if any(keyword in name_lower for keyword in ["setup", "repository", "tooling"]):
if any(keyword in name_lower for keyword in ["setup", "repository", "tooling", "sys-medic", "medic"]):
return AgentCategory.INFRASTRUCTURE
# Development process agents

View File

@@ -140,14 +140,14 @@ kaizen-agentic memory clear <agent> # Wipe memory (with confirmation)
**Memory convention and tooling**
- [x] T07 — Write ADR: project memory convention (file location, structure, lifecycle)
- [x] T08 — Implement `memory` CLI command group (show, init, brief, clear)
- [ ] T09 — Add session-start and session-close protocol sections to agent template /
- [x] T09 — Add session-start and session-close protocol sections to agent template /
contributor guide
**Agent definition updates**
- [ ] T10 — Add session-start and session-close protocol blocks to all existing
- [x] T10 — Add session-start and session-close protocol blocks to all existing
agents that do session-bound work (project-management, tdd-workflow,
requirements-engineering, scope-analyst, sys-medic)
- [ ] T11 — Update agent YAML frontmatter schema to include optional
- [x] T11 — Update agent YAML frontmatter schema to include optional
`memory: enabled|disabled` field (default: enabled)
**Coaching meta-agent**