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

@@ -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