Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
214 changes: 91 additions & 123 deletions learn/ASSET-CATALOG.md

Large diffs are not rendered by default.

46 changes: 7 additions & 39 deletions learn/scripts/generate-harnesses.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,6 @@ def generate_agents() -> None:
codex_agents = CODEX / "agents"
repository_agents = AGENTS / "agents"
agents = sorted((CLAUDE / "agents").glob("*.md"))
native_codex_agents = sorted((CLAUDE / "agents").glob("*.toml"))

def populate_markdown_agents(target: Path, harness: str) -> None:
for path in agents:
Expand All @@ -205,21 +204,10 @@ def populate_repository_agents(target: Path) -> None:
replace_generated_directory(repository_agents, populate_repository_agents)

def populate_codex_agents(target: Path) -> None:
generated_names = {f"{path.stem}.toml" for path in agents}
for path in agents:
(target / f"{path.stem}.toml").write_text(
codex_agent_text(path), encoding="utf-8"
)
for path in native_codex_agents:
if path.name in generated_names:
raise ValueError(
f"Native Codex agent conflicts with generated agent: {path.name}"
)
require_plain_template_path(path, "native Codex agent source")
text = path.read_text(encoding="utf-8").replace(
"../skills/", ".agents/skills/"
)
(target / path.name).write_text(text, encoding="utf-8")

replace_generated_directory(codex_agents, populate_codex_agents)

Expand Down Expand Up @@ -421,14 +409,13 @@ def generate_source_templates() -> None:

def generate_catalog() -> None:
agents = sorted((CLAUDE / "agents").glob("*.md"))
native_codex_agents = sorted((CLAUDE / "agents").glob("*.toml"))
skills = sorted(
path
for path in (CLAUDE / "skills").iterdir()
if path.is_dir() and (path / "SKILL.md").is_file()
)
commands = sorted((CLAUDE / "commands").glob("*.md"))
agent_count = len(agents) + len(native_codex_agents)
agent_count = len(agents)
core_skill_count = len(skills)
command_count = len(commands)
command_translation_count = len(CODEX_COMMAND_TRANSLATIONS)
Expand All @@ -443,33 +430,19 @@ def generate_catalog() -> None:
rows.append(
f"| [{bee}](../src/agents/{agent.name}) | "
f"[{expected}](../src/skills/{expected}/) | "
f"`.codex/agents/{agent.stem}.toml` (generated) |"
)
for agent in native_codex_agents:
bee = agent.stem
expected = bee.removesuffix("-worker-bee") + "-stinger"
rows.append(
f"| [{bee}](../src/agents/{agent.name}) | "
f"[{expected}](../src/skills/{expected}/) | "
"Native TOML source; skill paths adapted on generation |"
f"[TOML](../.codex/agents/{agent.stem}.toml) |"
)
paired_skills = {
agent.stem.removesuffix("-worker-bee") + "-stinger"
for agent in (*agents, *native_codex_agents)
}
utilities = sorted(skill_names - paired_skills)
utilities = sorted(skill_names - {
agent.stem.removesuffix("-worker-bee") + "-stinger" for agent in agents
})
text = "\n".join([
"# Asset Catalog",
"",
"This file is generated from the canonical `src/` source package. Do not maintain the roster by hand.",
"",
"## Exact manifest",
"",
(
f"- Agents: {agent_count} "
f"({len(agents)} portable Markdown plus "
f"{len(native_codex_agents)} Codex-native TOML)"
),
f"- Agents: {agent_count}",
f"- Core skills: {core_skill_count}",
(
f"- Commands: {command_count} "
Expand All @@ -487,12 +460,7 @@ def generate_catalog() -> None:
"",
"| Source capability | Claude Code | Codex | Cursor |",
"|---|---|---|---|",
(
f"| {agent_count} agents | PRESERVE {len(agents)} portable Markdown agents | "
f"TRANSLATE {len(agents)} Markdown agents; PRESERVE "
f"{len(native_codex_agents)} native TOML agent | "
f"PRESERVE {len(agents)} portable Markdown agents |"
),
f"| {agent_count} agents | PRESERVE as Markdown | TRANSLATE to TOML project agents | PRESERVE as Markdown |",
f"| {core_skill_count} skills | PRESERVE | PRESERVE in `.agents/skills` and plugin | PRESERVE |",
f"| {command_count} commands | PRESERVE | TRANSLATE {command_translation_count} to explicit skills in both Codex layers | PRESERVE |",
"| 4 rules | TRANSLATE to Claude rules and CLAUDE.md | TRANSLATE to project instructions | PRESERVE as MDC |",
Expand Down
30 changes: 0 additions & 30 deletions src/agents/browser-automation-worker-bee.md

This file was deleted.

30 changes: 0 additions & 30 deletions src/agents/chrome-chromium-worker-bee.md

This file was deleted.

30 changes: 0 additions & 30 deletions src/agents/electron-app-worker-bee.md

This file was deleted.

30 changes: 0 additions & 30 deletions src/agents/elevenlabs-api-worker-bee.md

This file was deleted.

30 changes: 0 additions & 30 deletions src/agents/heygen-api-worker-bee.md

This file was deleted.

Loading