feat: add six specialized Claude agent definitions under .claude/agents for audit, devii, docs, dry, fanout, and frontend maintenance

This commit is contained in:
2026-06-13 18:34:47 +00:00
parent ede7a863b7
commit de745f7a75
107 changed files with 2611 additions and 517 deletions
+71
View File
@@ -14,10 +14,40 @@ SECTION_ARCH = "Architecture"
SECTION_TESTING = "Testing"
SECTION_PROD = "Production"
SECTION_MAINTENANCE = "Maintenance agents"
SECTION_CLAUDE = "Claude Code"
AUDIENCE_START = "Start here"
AUDIENCE_BUILD = "Build with the API"
AUDIENCE_CONTRIBUTE = "Contribute and internals"
AUDIENCE_OPERATE = "Operate"
AUDIENCES = [
(AUDIENCE_START, [SECTION_GENERAL]),
(AUDIENCE_BUILD, [SECTION_API, SECTION_COMPONENTS, SECTION_STYLES]),
(
AUDIENCE_CONTRIBUTE,
[
SECTION_ARCH,
SECTION_SERVICES,
SECTION_DEVII,
SECTION_BOTS,
SECTION_TESTING,
SECTION_MAINTENANCE,
SECTION_CLAUDE,
],
),
(AUDIENCE_OPERATE, [SECTION_ADMIN, SECTION_PROD]),
]
DOCS_PAGES = [
# General - how to use the site and Devii (everyone)
{"slug": "index", "title": "Overview", "kind": "prose", "section": SECTION_GENERAL},
{
"slug": "getting-started",
"title": "Getting started",
"kind": "prose",
"section": SECTION_GENERAL,
},
{
"slug": "devii",
"title": "Devii Assistant",
@@ -55,6 +85,31 @@ DOCS_PAGES = [
"kind": "prose",
"section": SECTION_MAINTENANCE,
},
# Claude Code - the native subagent, command, and workflow setup under .claude/
{
"slug": "claude",
"title": "Claude Code setup",
"kind": "prose",
"section": SECTION_CLAUDE,
},
{
"slug": "claude-agents",
"title": "Subagents",
"kind": "prose",
"section": SECTION_CLAUDE,
},
{
"slug": "claude-commands",
"title": "Commands",
"kind": "prose",
"section": SECTION_CLAUDE,
},
{
"slug": "claude-workflows",
"title": "Workflows",
"kind": "prose",
"section": SECTION_CLAUDE,
},
# Components - custom HTML web components with live examples (everyone)
{
"slug": "components",
@@ -467,3 +522,19 @@ DOCS_PAGES = [
]
PAGES_BY_SLUG = {page["slug"]: page for page in DOCS_PAGES}
def nav_groups(pages):
by_section = {}
for page in pages:
by_section.setdefault(page.get("section"), []).append(page)
groups = []
for audience, sections in AUDIENCES:
tiers = []
for section in sections:
section_pages = by_section.get(section)
if section_pages:
tiers.append((section, section_pages))
if tiers:
groups.append((audience, tiers))
return groups