feat(CUST-WP-0016): kaizen-agentic integration — MCP tools, templates, direct install

- Fix /domains/{slug}/ 500: EP/TD queries now use domain_id FK (not string column)
- Remove dead cascade-slug code in rename_domain (FK handles it)
- MCP: list_kaizen_agents(category?) + get_kaizen_agent(name) via resolve_repo_path()
- TOOLS.md: Kaizen Agents section with discovery/load pattern
- agents.template: new project rule for consumer repos
- claude-md.template + register_project.sh: include agents.md in new-project scaffolding
- agents/: direct install of 6 curated agents for hub sessions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-17 22:24:30 +01:00
parent 196e6c5aed
commit 8619cd2218
6 changed files with 132 additions and 17 deletions

View File

@@ -73,16 +73,16 @@ async def get_domain(
)
ws_count = ws_count_row.scalar_one()
# Count EPs and TDs (domain is a string column there)
# Count EPs and TDs
ep_count_row = await session.execute(
select(func.count()).select_from(ExtensionPoint)
.where(ExtensionPoint.domain == slug)
.where(ExtensionPoint.domain_id == domain.id)
)
ep_count = ep_count_row.scalar_one()
td_count_row = await session.execute(
select(func.count()).select_from(TechnicalDebt)
.where(TechnicalDebt.domain == slug)
.where(TechnicalDebt.domain_id == domain.id)
)
td_count = td_count_row.scalar_one()
@@ -127,19 +127,6 @@ async def rename_domain(
domain.slug = body.new_slug
domain.name = body.new_name
# Cascade slug rename to EP/TD string columns
if old_slug != body.new_slug:
await session.execute(
ExtensionPoint.__table__.update()
.where(ExtensionPoint.domain == old_slug)
.values(domain=body.new_slug)
)
await session.execute(
TechnicalDebt.__table__.update()
.where(TechnicalDebt.domain == old_slug)
.values(domain=body.new_slug)
)
await session.commit()
await session.refresh(domain)
return domain