oh-my-customcode 1.1.35 → 1.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/cli/index.js +1 -1
  2. package/dist/index.js +1 -1
  3. package/package.json +1 -1
  4. package/templates/.claude/agents/arch-documenter.md +2 -2
  5. package/templates/.claude/agents/arch-speckit-agent.md +1 -1
  6. package/templates/.claude/agents/be-django-expert.md +1 -1
  7. package/templates/.claude/agents/be-express-expert.md +1 -1
  8. package/templates/.claude/agents/be-fastapi-expert.md +1 -1
  9. package/templates/.claude/agents/be-go-backend-expert.md +1 -1
  10. package/templates/.claude/agents/be-nestjs-expert.md +1 -1
  11. package/templates/.claude/agents/be-springboot-expert.md +1 -1
  12. package/templates/.claude/agents/db-alembic-expert.md +1 -5
  13. package/templates/.claude/agents/db-postgres-expert.md +1 -1
  14. package/templates/.claude/agents/db-redis-expert.md +2 -2
  15. package/templates/.claude/agents/db-supabase-expert.md +1 -1
  16. package/templates/.claude/agents/de-airflow-expert.md +1 -1
  17. package/templates/.claude/agents/de-dbt-expert.md +2 -2
  18. package/templates/.claude/agents/de-kafka-expert.md +1 -1
  19. package/templates/.claude/agents/de-pipeline-expert.md +1 -1
  20. package/templates/.claude/agents/de-snowflake-expert.md +2 -2
  21. package/templates/.claude/agents/de-spark-expert.md +1 -1
  22. package/templates/.claude/agents/fe-design-expert.md +1 -1
  23. package/templates/.claude/agents/fe-flutter-agent.md +1 -1
  24. package/templates/.claude/agents/fe-svelte-agent.md +1 -1
  25. package/templates/.claude/agents/fe-vercel-agent.md +1 -1
  26. package/templates/.claude/agents/fe-vuejs-agent.md +1 -1
  27. package/templates/.claude/agents/infra-aws-expert.md +1 -1
  28. package/templates/.claude/agents/infra-docker-expert.md +1 -1
  29. package/templates/.claude/agents/lang-golang-expert.md +1 -1
  30. package/templates/.claude/agents/lang-java-expert.md +2 -2
  31. package/templates/.claude/agents/lang-kotlin-expert.md +1 -1
  32. package/templates/.claude/agents/lang-python-expert.md +1 -1
  33. package/templates/.claude/agents/lang-rust-expert.md +1 -1
  34. package/templates/.claude/agents/lang-typescript-expert.md +1 -1
  35. package/templates/.claude/agents/mgr-claude-code-bible.md +1 -1
  36. package/templates/.claude/agents/mgr-creator.md +2 -2
  37. package/templates/.claude/agents/mgr-gitnerd.md +1 -1
  38. package/templates/.claude/agents/mgr-sauron.md +2 -2
  39. package/templates/.claude/agents/mgr-updater.md +1 -1
  40. package/templates/.claude/agents/qa-engineer.md +1 -1
  41. package/templates/.claude/agents/qa-planner.md +1 -1
  42. package/templates/.claude/agents/qa-writer.md +1 -1
  43. package/templates/.claude/agents/sec-codeql-expert.md +1 -1
  44. package/templates/.claude/agents/slack-cli-expert.md +1 -1
  45. package/templates/.claude/agents/sys-memory-keeper.md +1 -1
  46. package/templates/.claude/agents/sys-naggy.md +1 -1
  47. package/templates/.claude/agents/tool-bun-expert.md +1 -1
  48. package/templates/.claude/agents/tool-npm-expert.md +1 -1
  49. package/templates/.claude/agents/tool-optimizer.md +1 -1
  50. package/templates/.claude/agents/tracker-checkpoint.md +1 -1
  51. package/templates/.claude/agents/wiki-curator.md +2 -1
  52. package/templates/.claude/hooks/scripts/model-escalation-advisor.sh +7 -2
  53. package/templates/.claude/rules/MUST-agent-design.md +45 -19
  54. package/templates/.claude/rules/MUST-completion-verification.md +3 -0
  55. package/templates/.claude/rules/MUST-continuous-improvement.md +22 -2
  56. package/templates/guides/deep-plan/phases.md +1 -1
  57. package/templates/guides/harness-engineering/README.md +1 -1
  58. package/templates/guides/multi-model-routing/README.md +58 -33
  59. package/templates/guides/multi-provider-exec/README.md +1 -1
  60. package/templates/manifest.json +1 -1
  61. package/templates/workflows/auto-dev.yaml +22 -8
package/dist/cli/index.js CHANGED
@@ -241,7 +241,7 @@ var init_package = __esm(() => {
241
241
  workspaces: [
242
242
  "packages/*"
243
243
  ],
244
- version: "1.1.35",
244
+ version: "1.1.37",
245
245
  description: "Batteries-included agent harness for Claude Code",
246
246
  type: "module",
247
247
  bin: {
package/dist/index.js CHANGED
@@ -2031,7 +2031,7 @@ var package_default = {
2031
2031
  workspaces: [
2032
2032
  "packages/*"
2033
2033
  ],
2034
- version: "1.1.35",
2034
+ version: "1.1.37",
2035
2035
  description: "Batteries-included agent harness for Claude Code",
2036
2036
  type: "module",
2037
2037
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "1.1.35",
6
+ "version": "1.1.37",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: arch-documenter
3
3
  description: Use for generating architecture documentation, API specifications (OpenAPI), Architecture Decision Records (ADRs), technical diagrams (Mermaid/PlantUML), and README maintenance
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
- effort: high
7
+ effort: medium
8
8
  limitations:
9
9
  - "cannot execute commands"
10
10
  - "cannot deploy"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: arch-speckit-agent
3
3
  description: Use for spec-driven development, transforming requirements into executable specifications, defining project constitution, creating technical plans, and generating TDD task lists
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: be-django-expert
3
3
  description: Expert Django developer for production-ready Python web applications. Use for Django projects, models/views/templates, Django REST Framework, authentication, admin customization, and deployment optimization.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: be-express-expert
3
3
  description: Expert Express.js developer for production-ready Node.js APIs following security best practices and 12-factor app principles. Use for Express.js APIs, REST API architectures, middleware chains, authentication/authorization, security hardening, and Node.js performance optimization.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: be-fastapi-expert
3
3
  description: Expert FastAPI developer for building high-performance async Python APIs. Use for FastAPI projects, Python async/await patterns, Pydantic models, API architecture design, and performance optimization.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: be-go-backend-expert
3
3
  description: Expert Go backend developer for production-ready services following Uber style guide and standard layout. Use for Go backend services, HTTP/gRPC servers, microservices in Go, concurrent systems, and Go performance optimization.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: be-nestjs-expert
3
3
  description: Expert NestJS developer for opinionated, scalable Node.js applications with TypeScript. Use for NestJS projects, decorator-based patterns (@Injectable, @Module, @Controller), enterprise API architectures, authentication/authorization guards, DTO validation, and modular architecture.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: be-springboot-expert
3
3
  description: Expert Spring Boot 4.0 developer for enterprise-grade Java 25 LTS applications. Use for Spring Boot projects, Java/Kotlin enterprise apps, RESTful APIs, microservices architecture, Spring Data, security patterns, virtual threads, and GraalVM native images.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: db-alembic-expert
3
3
  description: Alembic migration specialist for generating, reviewing, fixing, and advising on SQLAlchemy database migrations
4
- model: sonnet
4
+ model: claude-opus-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -15,10 +15,6 @@ tools:
15
15
  skills:
16
16
  - alembic-best-practices
17
17
  - postgres-best-practices
18
- escalation:
19
- enabled: true
20
- path: sonnet → opus
21
- threshold: 2
22
18
  limitations:
23
19
  - "cannot apply migrations directly to production databases"
24
20
  - "cannot resolve application-level data backfill logic without domain context"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: db-postgres-expert
3
3
  description: Expert PostgreSQL DBA for pure PostgreSQL environments. Use for database design, query optimization, indexing strategies, partitioning, replication, PG-specific SQL syntax, and performance tuning without Supabase dependency.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: user
7
7
  effort: high
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: db-redis-expert
3
3
  description: Expert Redis developer for caching strategies, data structure design, Pub/Sub messaging, Streams, Lua scripting, and cluster management. Use for Redis configuration, performance optimization, and in-memory data architecture.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: user
7
- effort: high
7
+ effort: medium
8
8
  skills:
9
9
  - redis-best-practices
10
10
  tools:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: db-supabase-expert
3
3
  description: Supabase and PostgreSQL expert. Use when working with Supabase projects, writing SQL queries, designing database schemas, configuring Row-Level Security (RLS), optimizing Postgres performance, or managing connection pooling. Handles .sql files and Supabase configuration.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: user
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: de-airflow-expert
3
3
  description: Expert Apache Airflow developer for DAG authoring, testing, and debugging. Use for DAG files (*.py in dags/), airflow.cfg, Airflow-related keywords, scheduling patterns, and pipeline orchestration.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: data-engineering
6
6
  memory: local
7
7
  effort: high
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: de-dbt-expert
3
3
  description: Expert dbt developer for SQL modeling, testing, and documentation. Use for dbt model files (*.sql in models/), schema.yml, dbt_project.yml, dbt-related keywords, and analytics engineering workflows.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: data-engineering
6
6
  memory: local
7
- effort: high
7
+ effort: medium
8
8
  skills:
9
9
  - dbt-best-practices
10
10
  tools:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: de-kafka-expert
3
3
  description: Expert Apache Kafka developer for event streaming, topic design, and producer-consumer patterns. Use for Kafka configs, streaming applications, event-driven architectures, and message broker design.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: data-engineering
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: de-pipeline-expert
3
3
  description: Expert data pipeline architect for ETL/ELT design, orchestration patterns, data quality, and cross-tool integration. Use for pipeline architecture decisions, data quality frameworks, lineage tracking, and multi-tool coordination.
4
- model: sonnet
4
+ model: claude-opus-5
5
5
  domain: data-engineering
6
6
  memory: local
7
7
  effort: high
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: de-snowflake-expert
3
3
  description: Expert Snowflake developer for cloud data warehouse design, query optimization, and data loading. Use for Snowflake SQL, warehouse configuration, clustering keys, data sharing, and Iceberg table integration.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: data-engineering
6
6
  memory: local
7
- effort: high
7
+ effort: medium
8
8
  skills:
9
9
  - snowflake-best-practices
10
10
  tools:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: de-spark-expert
3
3
  description: Expert Apache Spark developer for PySpark and Scala distributed data processing. Use for Spark jobs (*.py, *.scala), spark-submit configs, Spark-related keywords, and large-scale data transformation.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: data-engineering
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: fe-design-expert
3
3
  description: Use for design system review, typography audit, color palette evaluation, motion design, and AI-generated design quality assessment
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: frontend
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: fe-flutter-agent
3
3
  description: Use for Flutter/Dart cross-platform app development, widget composition, state management (Riverpod/BLoC), and performance optimization
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: frontend
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: fe-svelte-agent
3
3
  description: Use for Svelte compiler-based reactivity, reactive statements ($:), Svelte stores, and SvelteKit full-stack development with SSR
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: frontend
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: fe-vercel-agent
3
3
  description: Use for React/Next.js optimization, web design review (accessibility, UX), Vercel deployment automation, and bundle size optimization
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: frontend
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: fe-vuejs-agent
3
3
  description: Use for Vue 3 Composition API development, single-file components, Pinia state management, and Vue Router navigation
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: frontend
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: infra-aws-expert
3
3
  description: Use for AWS architecture design with Well-Architected Framework, infrastructure as code (CloudFormation/CDK/Terraform), VPC networking, IAM security, and cost optimization
4
- model: sonnet
4
+ model: claude-opus-5
5
5
  domain: devops
6
6
  memory: user
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: infra-docker-expert
3
3
  description: Use for creating optimized Dockerfiles, multi-stage builds, container security hardening, Docker Compose configurations, and image size optimization
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: devops
6
6
  memory: user
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lang-golang-expert
3
3
  description: Expert Go developer for writing idiomatic, performant Go code. Use for Go files (*.go, go.mod, go.sum), Go-related keywords, implementing concurrent systems, reviewing Go code, and optimizing Go applications.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: lang-java-expert
3
3
  description: Expert Java 25 LTS developer for modern Java with Virtual Threads, Pattern Matching, Record Patterns, and Sequenced Collections. Use for Java files (*.java, pom.xml, build.gradle), Java-related keywords, high-concurrency systems, data-centric APIs with Records, and migrating from older Java versions.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
- effort: high
7
+ effort: medium
8
8
  skills:
9
9
  - java-best-practices
10
10
  tools:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lang-kotlin-expert
3
3
  description: Expert Kotlin developer for writing idiomatic, concise, null-safe Kotlin code. Use for Kotlin files (*.kt, *.kts), Kotlin-related keywords, Android development, Kotlin multiplatform projects, and migrating Java to Kotlin.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lang-python-expert
3
3
  description: Expert Python developer for writing Pythonic, clean code following PEP 8. Use for Python files (*.py, requirements.txt, pyproject.toml), Python-related keywords, designing Python APIs, reviewing Python code, and optimizing Python applications.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lang-rust-expert
3
3
  description: Expert Rust developer for writing safe, performant, idiomatic Rust code. Use for Rust files (*.rs, Cargo.toml), Rust-related keywords, designing safe APIs, debugging ownership/lifetime issues, and implementing high-performance systems.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lang-typescript-expert
3
3
  description: Expert TypeScript developer for writing type-safe, maintainable, scalable TypeScript code. Use for TypeScript files (*.ts, *.tsx, tsconfig.json), TypeScript-related keywords, designing APIs with type contracts, migrating JavaScript to TypeScript, and Node.js backend services.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: backend
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: mgr-claude-code-bible
3
3
  description: Fetches latest Claude Code official documentation from code.claude.com and verifies agents/skills compliance against the official spec. Use when you need to check official Claude Code documentation or verify frontmatter fields.
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: mgr-creator
3
3
  description: Use when you need to create new agents following design guidelines. Automatically researches authoritative references before agent creation to ensure high-quality knowledge base
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: high
@@ -50,7 +50,7 @@ When invoked as routing fallback (not explicit `/create-agent`):
50
50
  3. Auto-connect: scan `guides/` for relevant reference docs
51
51
  4. Create minimal viable agent with:
52
52
  - Detected skills and relevant guides
53
- - `sonnet` model (default)
53
+ - `claude-sonnet-5` model (default; Tier 2 full model ID — CC does not resolve invented version-suffixed aliases, use the full ID per R006)
54
54
  - `project` memory scope
55
55
  5. Agent is persisted (not ephemeral) for future reuse
56
56
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: mgr-gitnerd
3
3
  description: Use when you need to handle Git operations and GitHub workflow management, including commits, branches, PRs, and history management following best practices
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: mgr-sauron
3
3
  description: Use when you need automated verification of R017 compliance, executing mandatory multi-round verification (5 manager rounds + 3 deep review rounds, with rounds 3-4 conditionally skipped when rounds 1-2 return 0 issues) before commits
4
- model: sonnet
4
+ model: claude-opus-5
5
5
  domain: universal
6
6
  memory: local
7
- effort: high
7
+ effort: medium
8
8
  skills:
9
9
  - sauron-watch
10
10
  tools:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: mgr-updater
3
3
  description: Use when you need to update external agents, skills, and guides from their upstream sources, checking versions and applying updates
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: qa-engineer
3
3
  description: Use when you need to execute tests based on detailed plans and documentation, perform manual and automated testing, report defects, and validate fixes
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: qa-planner
3
3
  description: Use when you need to create detailed QA plans from requirements and specifications, including test strategy design, risk-based prioritization, test scenario identification, and acceptance criteria definition
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: high
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: qa-writer
3
3
  description: Use when you need to create comprehensive QA documentation from detailed plans, including test cases, test reports, and quality documentation
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: sec-codeql-expert
3
3
  description: Expert security code analyst using CodeQL for vulnerability detection, call graph analysis, and SARIF output. Use for security audits, CVE triage, code pattern analysis, and vulnerability validation.
4
- model: sonnet
4
+ model: claude-opus-5
5
5
  effort: high
6
6
  domain: devops
7
7
  memory: local
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: slack-cli-expert
3
3
  description: Expert Slack CLI developer for Slack app management, deployment, triggers, and workspace automation
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  effort: medium
7
7
  tools:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: sys-memory-keeper
3
3
  description: Use when you need to manage session memory persistence via native auto-memory, save context before compaction, restore context on session start, collect session summaries, or perform session-end memory operations
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: sys-naggy
3
3
  description: Use when you need TODO list management and task tracking with proactive reminders, helping maintain project momentum by monitoring stale tasks and deadlines
4
- model: sonnet
4
+ model: haiku
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: low
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: tool-bun-expert
3
3
  description: Use for Bun runtime development, bunfig.toml configuration, Bun test runner, fast bundling, and Node.js to Bun migrations
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: tool-npm-expert
3
3
  description: Use for npm package publishing workflows, semantic versioning (major/minor/patch), package.json optimization, and dependency audits
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: tool-optimizer
3
3
  description: Use for bundle size analysis, tree-shaking verification, performance profiling, dead code detection, and build optimization recommendations
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  domain: universal
6
6
  memory: local
7
7
  effort: medium
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: tracker-checkpoint
3
3
  description: Pipeline execution state tracker with checkpoint persistence. Reads/writes /tmp/.claude-pipeline-*-{PPID}.json state files and validates state transitions. Used by dag-orchestration for resume-after-failure and pipeline-guards for quality gate state.
4
- model: sonnet
4
+ model: haiku
5
5
  effort: medium
6
6
  tools: [Read, Write, Edit, Bash, Glob, Grep]
7
7
  memory: local
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: wiki-curator
3
3
  description: Dedicated wiki page CRUD agent — creates, updates, and maintains wiki/ markdown pages for the codebase knowledge base
4
- model: sonnet
4
+ model: claude-sonnet-5
5
5
  tools:
6
6
  - Read
7
7
  - Write
@@ -11,6 +11,7 @@ tools:
11
11
  - Bash
12
12
  domain: universal
13
13
  memory: local
14
+ effort: medium
14
15
  permissionMode: bypassPermissions
15
16
  ---
16
17
 
@@ -39,16 +39,20 @@ fi
39
39
  consecutive_failures=$(tail -${CONSECUTIVE_THRESHOLD} "$OUTCOME_FILE" 2>/dev/null | grep -c '"outcome":"failure"' 2>/dev/null || echo "0")
40
40
 
41
41
  # Escalation path
42
+ # NOTE: Agent tool `model` param is an enum of exactly 4 values: sonnet | opus | haiku | fable.
43
+ # Full model IDs and virtual/versioned aliases NEVER match here — they never reach this
44
+ # script via tool_input.model, so using them as case labels silently no-ops the entire
45
+ # advisory (no error, just dead code). Keep case labels as bare enum aliases only.
42
46
  next_model=""
43
47
  cost_multiplier=""
44
48
  case "$current_model" in
45
49
  haiku)
46
50
  next_model="sonnet"
47
- cost_multiplier="~3-5x"
51
+ cost_multiplier="~3x"
48
52
  ;;
49
53
  sonnet)
50
54
  next_model="opus"
51
- cost_multiplier="~5-10x"
55
+ cost_multiplier="~1.5-2x"
52
56
  ;;
53
57
  *)
54
58
  next_model=""
@@ -86,6 +90,7 @@ if [ "$current_model" != "haiku" ] && [ "$current_model" != "inherit" ] && [ "$c
86
90
 
87
91
  if [ "$recent_successes" -ge "$COOLDOWN" ]; then
88
92
  lower_model=""
93
+ # Same enum constraint as the escalation case above: bare aliases only.
89
94
  case "$current_model" in
90
95
  opus) lower_model="sonnet" ;;
91
96
  sonnet) lower_model="haiku" ;;
@@ -11,42 +11,68 @@ Location: `.claude/agents/{name}.md` (single file, kebab-case)
11
11
  ```yaml
12
12
  name: agent-name # Unique identifier (kebab-case)
13
13
  description: Brief desc # One-line summary
14
- model: sonnet # sonnet | opus | haiku | opusplan (or full ID: claude-sonnet-4-6, claude-opus-4-6[1m])
14
+ model: sonnet # CC-native alias (Tier 1) or full model ID (Tier 2) — see "Model Specification — 3 Tiers" below
15
15
  tools: [Read, Write, ...] # Allowed tools
16
16
  ```
17
17
 
18
18
  > **v2.1.208+**: The Agent tool no longer launches with no tools when a subagent's `tools:` list resolves to nothing — it now returns a clear error naming the unrecognized entries, catching frontmatter `tools:` typos that previously failed silently.
19
19
 
20
- ### Model Aliases
20
+ ### Model Specification — 3 Tiers
21
21
 
22
- | Alias | Full ID | Use Case |
23
- |-------|---------|----------|
24
- | `haiku` | claude-haiku-4-5 | Fast, cheap tasks (search, simple edits) |
25
- | `sonnet` | claude-sonnet-4-6 | General tasks, code generation (default) |
26
- | `sonnet5` | claude-sonnet-5 | CC default (v2.1.197+); native 1M context |
27
- | `opus` | claude-opus-4-6 | Complex reasoning, architecture |
28
- | `opusplan` | claude-opus-4-6 + plan mode | Architecture planning with approval gates |
29
- | `opus48` | claude-opus-4-8 | Previous-generation Opus; supports xhigh effort |
30
- | `opus5` | claude-opus-5 | Latest Opus (GA); now CC's default Opus model; native 1M context, fast mode at $10/$50 per Mtok |
31
- | `fable` | claude-fable-5 | Mythos-class; tier above Opus, highest GA capability (access added in CC v2.1.170) |
22
+ Model values resolve differently depending on WHERE they are written. Mixing tiers causes a value that is valid in one place to silently fail spawn in another (measured this session: `sonnet5`/`opus5`/`opus48` are invented names this project had documented as if they were CC-recognized — CC v2.1.220 does not resolve them, and spawn fails immediately).
23
+
24
+ #### Tier 1 — CC-native aliases (valid in BOTH frontmatter `model:` AND the Agent tool `model` parameter)
25
+
26
+ | Alias | Use Case |
27
+ |-------|----------|
28
+ | `haiku` | Fast, cheap tasks (search, simple edits) |
29
+ | `sonnet` | General tasks, code generation (default) |
30
+ | `opus` | Complex reasoning, architecture |
31
+ | `opusplan` | Opus + plan mode; architecture planning with approval gates |
32
+ | `inherit` | Inherit the parent session's model |
33
+
34
+ **CC resolves these, not this project.** This project cannot "pin" an alias to a specific version — measured: a frontmatter `model: sonnet` agent executed as `claude-sonnet-5` (CC v2.1.197+ default), not a project-fixed `claude-sonnet-4-6`. Treat any "currently resolves to X" statement as a snapshot that changes when CC's own default changes.
35
+
36
+ #### Tier 2 — Full model IDs (frontmatter `model:` ONLY — recommended for stability)
37
+
38
+ | Full ID | Use Case |
39
+ |---------|----------|
40
+ | `claude-haiku-4-5` | Fast, cheap tasks |
41
+ | `claude-sonnet-5` | Native 1M context; current CC default Sonnet (v2.1.197+) |
42
+ | `claude-opus-4-6` | Opus, previous generation |
43
+ | `claude-opus-4-8` | Opus, previous generation; supports xhigh effort |
44
+ | `claude-opus-5` | Latest Opus (GA); native 1M context, fast mode at $10/$50 per Mtok |
45
+ | `claude-fable-5` | Mythos-class; tier above Opus (access via CC v2.1.170+) |
46
+
47
+ Full IDs are valid ONLY in agent frontmatter — the Agent tool's `model:` spawn parameter does NOT accept them (see Tier 3). Writing the full ID directly (not a project-invented shorthand) pins the agent regardless of future CC default changes. This is the recommended way to opt into Sonnet 5 / Opus 5 / Fable 5 explicitly rather than riding CC's Tier-1 default resolution.
32
48
 
33
49
  Extended context suffix: `[1m]` (e.g., `claude-opus-4-6[1m]`) — enables 1M token context window.
34
50
 
35
- > **v2.1.219+**: Claude Opus 5 (`claude-opus-5`) added and is now CC's default Opus model — native 1M context, fast mode at $10/$50 per Mtok. Use via `model: opus5`. Base `opus` alias remains pinned to `claude-opus-4-6` for stability (existing `model: opus` agents unaffected), matching the prior opus47→opus48 pinning pattern. Relative standing vs Fable 5 is not yet confirmed officially — do not assert an ordering.
51
+ #### Tier 3 — Agent tool `model` parameter (spawn-time override, enum of exactly 4 values)
52
+
53
+ ```
54
+ Agent(subagent_type: "...", model: "opus", mode: "bypassPermissions", prompt: "...")
55
+ ```
56
+
57
+ The Agent tool's `model` parameter accepts ONLY `sonnet` | `opus` | `haiku` | `fable`. It does NOT accept full model IDs (Tier 2) and does NOT accept `sonnet5`/`opus5`/`opus48` (never valid anywhere — retire these names). Note `fable` is valid HERE (Tier 3) but is NOT a Tier-1 frontmatter alias — Fable 5 in frontmatter requires the Tier-2 full ID `claude-fable-5`.
58
+
59
+ Skill/rule text instructing "spawn with `model: opus`" refers to this tier — always the bare 4-value alias, never a full ID.
60
+
61
+ > **v2.1.219+**: Claude Opus 5 (`claude-opus-5`) added. Opt in via the Tier-2 full ID in frontmatter; Tier-1 `opus`/`sonnet` alias resolution is CC-controlled (see Tier 1 above — this project does not pin it). Relative standing vs Fable 5 is not yet confirmed officially — do not assert an ordering.
36
62
 
37
- > **Claude Fable 5 (access via CC v2.1.170+)**: Mythos-class model, GA on the Claude API and positioned as a tier above Opus — its capabilities exceed any previously GA model. CC v2.1.170 is the client version that adds access (the model's GA is an API/platform property, not a CC-release milestone). Available via `model: fable` / `claude-fable-5`. Reserve for the most complex reasoning where its capability premium is warranted; `sonnet` remains the default for general tasks and `opus` for architecture (cost/latency awareness, R005). CC v2.1.170 also fixes session transcripts not saving (and not appearing in `--resume`) when launched from a VS Code integrated terminal or any shell inheriting Claude Code env vars — relevant to transcript-dependent skills (`homework`, `episodic-memory`). Closes #1352.
63
+ > **Claude Fable 5 (access via CC v2.1.170+)**: Mythos-class model, GA on the Claude API and positioned as a tier above Opus — its capabilities exceed any previously GA model. CC v2.1.170 is the client version that adds access (the model's GA is an API/platform property, not a CC-release milestone). Available via frontmatter full ID `claude-fable-5` (Tier 2) or Agent tool `model: fable` (Tier 3) — NOT via a Tier-1 frontmatter alias. Reserve for the most complex reasoning where its capability premium is warranted; `sonnet` remains the default for general tasks and `opus` for architecture (cost/latency awareness, R005). CC v2.1.170 also fixes session transcripts not saving (and not appearing in `--resume`) when launched from a VS Code integrated terminal or any shell inheriting Claude Code env vars — relevant to transcript-dependent skills (`homework`, `episodic-memory`). Closes #1352.
38
64
 
39
65
  <!-- ARCHIVED CC version notes (historical):
40
66
  > **v2.1.173+**: Fable 5 model IDs carrying a `[1m]` suffix are now auto-normalized (the suffix is stripped) because Fable 5 includes 1M context by default. Use `claude-fable-5` / `model: fable` WITHOUT a `[1m]` suffix — appending it is redundant and normalized away. (The `[1m]` suffix remains meaningful for Opus/Sonnet IDs.)
41
67
 
42
- > **v2.1.197+**: Claude Sonnet 5가 Claude Code의 **기본 모델**로 도입되었습니다 — 네이티브 1M-token 컨텍스트, 프로모션 가격 $2/$10 per Mtok(2026-08-31까지). `model: sonnet5` / `claude-sonnet-5`로 사용. oh-my-customcode의 base `sonnet` alias는 안정성을 위해 `claude-sonnet-4-6`에 고정 유지(기존 `sonnet` 지정 에이전트 불변); Sonnet 5는 `sonnet5`로 명시 opt-in. Sonnet 5가 CC 신규 기본값이므로 명시 모델 없는 세션은 이제 Sonnet 5에서 동작합니다.
68
+ > **v2.1.197+**: Claude Sonnet 5가 Claude Code의 **기본 모델**로 도입되었습니다 — 네이티브 1M-token 컨텍스트, 프로모션 가격 $2/$10 per Mtok(2026-08-31까지). frontmatter에서 명시 opt-in하려면 Tier-2 full ID `claude-sonnet-5`를 사용합니다(`sonnet5`는 어느 계층에서도 유효한 값이 아님 — 위 3-Tier 구분 참조). **정정(실측)**: 이 조항이 이전에 "oh-my-customcode의 base `sonnet` alias는 안정성을 위해 `claude-sonnet-4-6`에 고정 유지"라고 서술했으나 사실이 아니다 — `sonnet` alias 해석 주체는 CC이며 프로젝트가 pin할 수 없다(Tier 1 참조); frontmatter `model: sonnet` 에이전트가 실측상 `claude-sonnet-5`로 실행되었다. Sonnet 5가 CC 신규 기본값이므로 명시 모델 없는 세션은 이제 Sonnet 5에서 동작합니다.
43
69
 
44
70
  > **v2.1.201+**: Claude Sonnet 5 세션이 harness reminder를 mid-conversation system role로 주입하지 않도록 변경되었습니다 — Sonnet 5 실행 시 하니스 리마인더(규칙 재주입 등) 전달 방식이 조정되었으며, PostCompact 규칙 재주입(R021)·세션 연속성 동작 자체에는 영향이 없습니다. Sonnet 5가 CC 기본 모델(v2.1.197+)이므로 명시 모델 없는 세션에 적용됩니다.
45
71
  -->
46
72
 
47
73
  > **Fable 5 Effort 전략**: Fable 5는 **high effort가 기본값**이며, `xhigh`는 capability-sensitive 작업(최고난도 아키텍처/추론)에 한정해야 합니다. Fable 5의 `low`/`medium` effort조차 이전 세대 모델의 `xhigh`를 상회하는 품질을 보이므로, Fable 5를 사용하는 실행 에이전트는 `effort` 필드를 신중히 명시하고 불필요한 `xhigh` 남용을 지양합니다(R005 비용/지연 인식과 정합).
48
74
 
49
- > **Mythos 5 (`claude-mythos-5`)**: Project Glasswing 한정 공급 모델로, **GA가 아닙니다** — Fable 5(GA, 위 Model Aliases 표의 `fable`)와 구분해야 합니다. 특성: adaptive-thinking 전용 아키텍처 + 안전 분류기가 개입 시 `stop_reason: "refusal"`로 fallback하는 체계를 가집니다. oh-my-customcode 에이전트 frontmatter에는 아직 alias를 등록하지 않습니다(비-GA, 공급 제한).
75
+ > **Mythos 5 (`claude-mythos-5`)**: Project Glasswing 한정 공급 모델로, **GA가 아닙니다** — Fable 5(GA, 위 "Model Specification — 3 Tiers"의 `claude-fable-5`/`fable`)와 구분해야 합니다. 특성: adaptive-thinking 전용 아키텍처 + 안전 분류기가 개입 시 `stop_reason: "refusal"`로 fallback하는 체계를 가집니다. oh-my-customcode 에이전트 frontmatter에는 아직 alias를 등록하지 않습니다(비-GA, 공급 제한).
50
76
 
51
77
  > **프롬프팅 패턴 상호참조**: Fable 5/Mythos 5 대상 프롬프팅 패턴(effort 조합, adaptive-thinking 활용, refusal fallback 대응)의 상세 가이드는 `guides/claude-code/16-fable5-prompting.md`를 참조하세요.
52
78
 
@@ -67,7 +93,7 @@ This is a settings-level resilience mechanism, distinct from the per-agent `mode
67
93
  -->
68
94
 
69
95
  <!-- ARCHIVED CC version notes (historical):
70
- > **v2.1.183+**: CC now warns (stderr, in `-p` print mode) when the requested model is deprecated or auto-updated to a newer model — and this warning now ALSO covers models set in agent frontmatter (`model:`). Relevant to the Model Aliases table above: a stale/deprecated `model:` value in agent frontmatter now surfaces a deprecation warning instead of silently resolving. Separately, v2.1.183 fixes `thinking.disabled.display: Extra inputs are not permitted` 400 errors on subagent spawns and session-title generation — extends the v2.1.166 toggle above; subagent spawns with thinking disabled no longer 400.
96
+ > **v2.1.183+**: CC now warns (stderr, in `-p` print mode) when the requested model is deprecated or auto-updated to a newer model — and this warning now ALSO covers models set in agent frontmatter (`model:`). Relevant to "Model Specification — 3 Tiers" above: a stale/deprecated `model:` value in agent frontmatter now surfaces a deprecation warning instead of silently resolving. Separately, v2.1.183 fixes `thinking.disabled.display: Extra inputs are not permitted` 400 errors on subagent spawns and session-title generation — extends the v2.1.166 toggle above; subagent spawns with thinking disabled no longer 400.
71
97
 
72
98
  > **v2.1.187+**: Org-configured model restrictions now apply to the model picker, `--model`, `/model`, and `ANTHROPIC_MODEL` (a restricted model shows "restricted by your organization's settings"). Extends the v2.1.175 `enforceAvailableModels` scope to per-agent `model:` override entry points — a managed model allowlist now also constrains the picker/env paths. Also fixed `--json-schema` / workflow `agent({schema})` structured output: the model can no longer re-call `StructuredOutput` indefinitely after a successful call, and follow-up turns reliably return structured output — relevant to schema-constrained subagent spawns.
73
99
 
@@ -110,7 +136,7 @@ source: # For external agents
110
136
  version: 1.0.0
111
137
  escalation: # Model escalation policy (optional)
112
138
  enabled: true # Enable auto-escalation advisory
113
- path: haiku → sonnet → opus # Escalation sequence
139
+ path: haiku → sonnet → opus # Escalation sequence (Tier-3 Agent-tool aliases only)
114
140
  threshold: 2 # Failures before advisory
115
141
  soul: true # Enable SOUL.md identity injection
116
142
  isolation: worktree | sandbox # worktree = git worktree, sandbox = restricted bash
@@ -297,7 +323,7 @@ When `escalation.enabled: true`, the model-escalation hooks will track outcomes
297
323
  | Field | Default | Description |
298
324
  |-------|---------|-------------|
299
325
  | `enabled` | false | Enable escalation tracking for this agent |
300
- | `path` | haiku → sonnet → opus | Model upgrade sequence |
326
+ | `path` | haiku → sonnet → opus | Model upgrade sequence (Tier-3 Agent-tool aliases only) |
301
327
  | `threshold` | 2 | Failure count before escalation advisory |
302
328
  -->
303
329
 
@@ -217,8 +217,11 @@ npm publish E403을 `--provenance` attestation 충돌로 오진단 → release w
217
217
  1. 가설을 뒷받침하는 직접 증거(로그/에러 코드/문서)가 있는가?
218
218
  2. 비파괴적 방법으로 가설을 검증할 수 있는가?
219
219
  3. 변경이 되돌리기 쉬운가? (영구 워크플로우 변경 vs 일회성 시도)
220
+ 4. 결함이 발생한 실행 경로(워크플로우 YAML/스킬 정의/스크립트/CI 설정)를 직접 읽었는가? 수동 재현 성공으로 자동화 경로의 동작을 추정하지 않았는가?
220
221
  하나라도 NO면 검증을 먼저 수행한다. 근본 원인 진단은 `superpowers:systematic-debugging` 참조.
221
222
 
223
+ Origin: #1533 (lockfile 4릴리즈 누락을 "스테이징 누락"으로 오진 — 실제 원인은 version-bump 절차에 build 단계 부재; 수동 재현 결과로 자동화 경로를 추정).
224
+
222
225
  ### Variant: Parallel Read + Permanent-Change Dispatch (#1250)
223
226
 
224
227
  진단 자료 수집(로그 조사, 파일 Read)과 그 진단에 의존하는 영구 변경(이슈 등록, 수정 에이전트 위임)을 **같은 메시지에서 병렬 실행**하면, Read 결과를 받기 전에 가설이 확정된다. 병렬 배치는 결과를 동시에 받으므로 "Read 후 판단"이 불가능하다.
@@ -13,8 +13,28 @@ Update the relevant rule rather than just acknowledging the violation.
13
13
  1. Acknowledge violation
14
14
  2. Identify root cause (which rule was weak/unclear?)
15
15
  3. Update the rule (add clarity, examples, self-checks)
16
- 4. Commit the change
17
- 5. Continue original task following updated rules
16
+ 4. Wiring check — confirm the rule is wired into an execution path, or mark it as wiring-not-required (see Rule Wiring Check below)
17
+ 5. Commit the change
18
+ 6. Continue original task following updated rules
19
+
20
+ ### Rule Wiring Check (배선 확인)
21
+
22
+ 규칙 텍스트를 추가하는 것과, 그 규칙이 실행 경로에서 발동되게 배선하는 것은 **별개 작업**이다. 텍스트만 추가하고 배선을 누락하면 동일 결함이 재발한다.
23
+
24
+ **판단 항목** (규칙 승격 시 판단하고 기록):
25
+ 1. 이 규칙이 발동되어야 하는 **실행 경로**(워크플로우 YAML / 스킬 정의 / 훅 / CI 설정)가 있는가?
26
+ 2. 있다면 그 경로에 **실제로 반영**했는가?
27
+ 3. 배선 대상이 없는 순수 서술 규칙(용어 정의 등)이면 **"배선 불요"임을 명시**한다.
28
+
29
+ 배선이 필요한데 텍스트만 추가한 것은 **미완료**로 간주한다.
30
+
31
+ | Anti-pattern | Required |
32
+ |--------------|----------|
33
+ | 규칙 조항만 추가하고 커밋 → 자동화 경로에 발동 지점이 없어 동일 결함 재발 | 발동 실행 경로 명시 + 반영 확인; 대상 없으면 "배선 불요" 명시 |
34
+
35
+ Origin: #1533 (v1.1.35에서 R017 (b) 조항 추가했으나 auto-dev.yaml version-bump 절차에 bun run build 단계가 없어 발동 지점 부재 — mgr-sauron이 [FAIL]로 차단, 배선 후 통과).
36
+
37
+ Cross-reference: R021(Enforcement Policy — advisory 규칙의 발동 지점), R017(구조 검증).
18
38
 
19
39
  ## Integration
20
40
 
@@ -109,7 +109,7 @@ Phase 3: Plan Verification Research
109
109
 
110
110
  **Invocation**: Phase 3 teams are spawned directly as parallel agents (NOT via `Skill(research)`). The orchestrator creates 3 focused agents, each with a specific verification mandate derived from the Phase 2 plan.
111
111
 
112
- **Model selection**: sonnet for teams, opus for synthesis.
112
+ **Model selection**: sonnet for teams, opus for synthesis (Agent-tool Tier 3 enum — see `guides/multi-model-routing/README.md`).
113
113
 
114
114
  ### Verdict
115
115
 
@@ -226,7 +226,7 @@ oh-my-customcode에서의 현황:
226
226
  # Break-out 시퀀스
227
227
  1. 현재 상태를 tracker-checkpoint에 기록
228
228
  2. [Warning] Doom loop detected — {action} × {n}회 반복
229
- 3. 에스컬레이션: haiku → sonnet → opus 순서로 모델 전환
229
+ 3. 에스컬레이션: haiku → sonnet → opus 순서로 모델 전환 (Agent 도구 model 파라미터 — Tier 3 enum만 허용, sonnet5/opus5 등 전체 ID는 스폰 실패)
230
230
  4. 메모리 저장: feedback_doom_loop_{날짜}.md → 세션 간 패턴 누적
231
231
  ```
232
232
 
@@ -4,37 +4,62 @@
4
4
 
5
5
  Role-based model selection strategy for AI agent workflows. Consolidates model routing conventions from R006 (agent design), R008 (tool identification), and agent frontmatter into a single reference.
6
6
 
7
- ## Model Aliases
7
+ This project uses a **3-tier model specification system** — the same-looking string means a different thing depending on where it is placed. Read "Model Specification — 3 Tiers" below before choosing a value for frontmatter vs. an Agent tool spawn.
8
8
 
9
- | Alias | Full ID | Cost | Speed | Use Case |
10
- |-------|---------|------|-------|----------|
11
- | `haiku` | claude-haiku-4-5 | $ | Fast | Search, simple edits, file discovery |
12
- | `sonnet` | claude-sonnet-4-6 | $$ | Moderate | Code generation, general tasks (project base alias — pinned to 4-6 for stability) |
13
- | `sonnet5` | claude-sonnet-5 | $$ | Moderate | CC platform default (v2.1.197+); native 1M context |
14
- | `opus` | claude-opus-4-6 | $$$ | Slower | Complex reasoning, architecture, planning (project base alias — pinned to 4-6 for stability) |
15
- | `opus5` | claude-opus-5 | $$$ | Fast mode available | CC platform default Opus (v2.1.219+); native 1M context, fast mode at $10/$50 per Mtok |
16
- | `opus48` | claude-opus-4-8 | $$$ | Slower | Previous-generation Opus (GA); supports xhigh effort |
17
- | `fable` | claude-fable-5 | $$$$ | Slower | Mythos-class; tier above Opus, highest GA capability |
18
- | `opusplan` | claude-opus-4-6 + plan mode | $$$ | Slower | Architecture with approval gates |
9
+ ## Model Specification — 3 Tiers
19
10
 
20
- Extended context: `[1m]` suffix enables 1M token context (e.g., `claude-opus-4-6[1m]`). Fable 5, Sonnet 5, and Opus 5 include 1M context by default — no `[1m]` suffix needed.
11
+ ### Tier 1 — CC Native Alias
21
12
 
22
- > **Base alias pin (design intent)**: The base `sonnet` alias stays pinned to `claude-sonnet-4-6` for stability — existing agents specifying `model: sonnet` remain unchanged. Claude Sonnet 5 (`claude-sonnet-5`) is the CC platform default as of v2.1.197 and is opt-in via the explicit `sonnet5` alias. The same pattern applies to Opus: the base `opus` alias stays pinned to `claude-opus-4-6`; Claude Opus 5 (`claude-opus-5`) is CC's default Opus model as of v2.1.219 and is opt-in via the explicit `opus5` alias. Relative standing vs Fable 5 is not yet confirmed officially — do not assert an ordering.
13
+ Values: `sonnet` | `opus` | `haiku` | `opusplan` | `inherit`
14
+
15
+ Valid in BOTH agent frontmatter `model:` AND the Agent tool `model` parameter. **CC resolves these, not this project** — documentation claiming a pin (e.g. "the `sonnet` alias is pinned to 4-6") does not change what CC actually runs underneath. In practice, an agent with `model: sonnet` in frontmatter has been observed running as `claude-sonnet-5`.
16
+
17
+ ### Tier 2 — Full Model ID (frontmatter only)
18
+
19
+ Values: `claude-sonnet-5` | `claude-opus-5` | `claude-haiku-4-5` | `claude-opus-4-6` | `claude-opus-4-8` | `claude-fable-5`, etc.
20
+
21
+ Valid ONLY in frontmatter `model:` — the Agent tool `model` parameter does NOT accept full model IDs. Use a Tier 2 ID when you want the agent pinned to a specific model regardless of any future drift in what CC's Tier 1 aliases resolve to.
22
+
23
+ ### Tier 3 — Agent Tool `model` Parameter (enum)
24
+
25
+ Values: `sonnet` | `opus` | `haiku` | `fable` — **only these four**. Does NOT accept full model IDs, and does NOT accept `sonnet5`/`opus5`-style names. Any spawn-time model escalation or routing table that dispatches via the Agent tool MUST use one of these four values.
26
+
27
+ ### Deprecated / Invalid Names
28
+
29
+ `sonnet5`, `opus5`, and `opus48` are **not recognized by CC in any context** (neither frontmatter nor the Agent tool parameter) — they were project-invented names previously documented in this repo as aliases, but the platform does not interpret them; using them causes an immediate spawn/resolution failure. Bare `fable` (without the `claude-` prefix) is valid ONLY as a Tier 3 Agent tool parameter value — it is NOT a valid frontmatter alias; use the full ID `claude-fable-5` in frontmatter instead.
30
+
31
+ ## Model Catalog (Tier 2 full IDs)
32
+
33
+ | Full Model ID | Cost | Speed | Use Case |
34
+ |---------------|------|-------|----------|
35
+ | `claude-haiku-4-5` | $ | Fast | Search, simple edits, file discovery |
36
+ | `claude-sonnet-4-6` | $$ | Moderate | Code generation, general tasks — historically what the Tier 1 `sonnet` alias resolved to; CC's actual resolution target can drift (see Tier 1 above) |
37
+ | `claude-sonnet-5` | $$ | Moderate | Native 1M context; use as an explicit frontmatter pin |
38
+ | `claude-opus-4-6` | $$$ | Slower | Complex reasoning, architecture, planning |
39
+ | `claude-opus-5` | $$$ | Fast mode available | Native 1M context, fast mode at $10/$50 per Mtok |
40
+ | `claude-opus-4-8` | $$$ | Slower | Previous-generation Opus; supports xhigh effort |
41
+ | `claude-fable-5` | $$$$ | Slower | Mythos-class; use the full ID in frontmatter (bare `fable` is Tier 3 Agent-tool-only) |
42
+
43
+ Extended context: `[1m]` suffix enables 1M token context (e.g., `claude-opus-4-6[1m]`). Sonnet 5, Opus 5, and Fable 5 include 1M context by default — no `[1m]` suffix needed.
44
+
45
+ > Relative standing of Fable 5 vs Opus 5 is not officially confirmed — do not assert an ordering.
23
46
 
24
47
  ## Role-Based Routing Table
25
48
 
26
- | Role | Recommended Model | Rationale |
27
- |------|------------------|-----------|
28
- | Code search / file discovery | haiku | Fast, cheap, sufficient for retrieval |
29
- | Code review | sonnet | Needs understanding, not deep reasoning |
30
- | Code generation | sonnet | Good balance of quality and speed |
31
- | Bug fix (simple) | sonnet | Pattern recognition sufficient |
32
- | Bug fix (complex) | opus | Needs deep reasoning across modules |
33
- | Architecture design | opus / opusplan | Requires holistic thinking |
34
- | Test generation | sonnet | Template-driven, moderate complexity |
35
- | Documentation | sonnet | Straightforward generation |
36
- | Release verification | opus | Cross-cutting validation |
37
- | Orchestration | opus | Routing decisions need broad context |
49
+ This table recommends **frontmatter (Tier 2) full model IDs** for pinning an agent's default model. When dispatching the same role via the Agent tool `model` parameter (Tier 3) instead — e.g. a routing skill spawning a one-off agent — use the alias equivalent in the last column.
50
+
51
+ | Role | Recommended Frontmatter ID (Tier 2) | Agent-Tool Equivalent (Tier 3) | Rationale |
52
+ |------|--------------------------------------|----------------------------------|-----------|
53
+ | Code search / file discovery | `claude-haiku-4-5` | `haiku` | Fast, cheap, sufficient for retrieval |
54
+ | Code review | `claude-sonnet-5` | `sonnet` | Needs understanding, not deep reasoning |
55
+ | Code generation | `claude-sonnet-5` | `sonnet` | Good balance of quality and speed |
56
+ | Bug fix (simple) | `claude-sonnet-5` | `sonnet` | Pattern recognition sufficient |
57
+ | Bug fix (complex) | `claude-opus-5` | `opus` | Needs deep reasoning across modules |
58
+ | Architecture design | `claude-opus-5` / `opusplan` | `opus` | Requires holistic thinking |
59
+ | Test generation | `claude-sonnet-5` | `sonnet` | Template-driven, moderate complexity |
60
+ | Documentation | `claude-sonnet-5` | `sonnet` | Straightforward generation |
61
+ | Release verification | `claude-opus-5` | `opus` | Cross-cutting validation |
62
+ | Orchestration | `claude-opus-5` | `opus` | Routing decisions need broad context |
38
63
 
39
64
  ## Cost-Quality Tradeoff Matrix
40
65
 
@@ -56,16 +81,16 @@ Quality ▲
56
81
 
57
82
  ## MODEL_ROUTING.md Convention
58
83
 
59
- Projects can declare a `MODEL_ROUTING.md` file to override default routing:
84
+ Projects can declare a `MODEL_ROUTING.md` file to override default routing. This convention sets a persistent per-agent frontmatter override, so use Tier 2 full model IDs:
60
85
 
61
86
  ```markdown
62
87
  # Model Routing
63
88
 
64
89
  | Agent Pattern | Model | Override Reason |
65
90
  |---------------|-------|-----------------|
66
- | lang-*-expert | sonnet | Default sufficient for code generation |
67
- | mgr-sauron | opus | Verification requires deep analysis |
68
- | Explore | haiku | Search-only, no generation needed |
91
+ | lang-*-expert | claude-sonnet-5 | Default sufficient for code generation |
92
+ | mgr-sauron | claude-opus-5 | Verification requires deep analysis |
93
+ | Explore | claude-haiku-4-5 | Search-only, no generation needed |
69
94
  ```
70
95
 
71
96
  Place in project root or `.claude/` directory.
@@ -75,14 +100,14 @@ Place in project root or `.claude/` directory.
75
100
  ```yaml
76
101
  # .claude/agents/example.md
77
102
  name: example-agent
78
- model: sonnet # Use alias from table above
103
+ model: claude-sonnet-5 # Tier 2 full model ID (recommended) — see Model Specification — 3 Tiers above
79
104
  ```
80
105
 
81
- The `model` field in agent frontmatter sets the default. The Agent tool's `model` parameter overrides at spawn time.
106
+ The `model` field in agent frontmatter accepts EITHER a Tier 1 alias (`sonnet`/`opus`/`haiku`/`opusplan`/`inherit`) OR a Tier 2 full model ID, and sets the agent's default. The Agent tool's `model` parameter at spawn time accepts ONLY the Tier 3 enum (`sonnet`/`opus`/`haiku`/`fable`) and overrides the frontmatter default when supplied.
82
107
 
83
108
  ## Escalation Pattern
84
109
 
85
- When a task fails at a lower model tier, escalate:
110
+ When a task fails at a lower model tier, escalate. Escalation is executed by re-spawning via the Agent tool, so the path MUST use Tier 3 aliases — the Agent tool parameter does not accept full model IDs or `sonnet5`/`opus5`-style names:
86
111
 
87
112
  ```
88
113
  haiku → sonnet → opus
@@ -102,6 +127,6 @@ Fast Mode (`/fast` toggle) uses the same model with faster output (~2.5x). It do
102
127
 
103
128
  ## Related
104
129
 
105
- - R006 — Agent design rules (model aliases, frontmatter format)
130
+ - R006 — Agent design rules (model tiers, frontmatter format)
106
131
  - R008 — Tool identification (model in agent:model format)
107
132
  - `guides/skill-bundle-design/` — Skill architecture patterns
@@ -42,7 +42,7 @@ Providers are opt-in — missing CLIs are silently skipped.
42
42
  | Skill | Uses Provider | How |
43
43
  |-------|--------------|-----|
44
44
  | `reasoning-sandwich` | Any exec skill | Pre/post reasoning with different models |
45
- | `model-escalation` | Claude models only | Internal escalation (haiku→sonnet→opus), not cross-provider |
45
+ | `model-escalation` | Claude models only | Internal escalation (haiku→sonnet→opus, Agent-tool Tier 3 enum), not cross-provider |
46
46
 
47
47
  ## Relationship to Multi-Model Routing
48
48
 
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.35",
2
+ "version": "1.1.37",
3
3
  "lastUpdated": "2026-07-14T00:00:00.000Z",
4
4
  "omcustomMinClaudeCode": "2.1.121",
5
5
  "omcustomMinClaudeCodeReason": "Sensitive-path direct Write/Edit on .claude/** under bypassPermissions (R010 deprecation, #1101)",
@@ -230,15 +230,19 @@ steps:
230
230
 
231
231
  ## Local CI-mimic verification (MUST run before marking implement done)
232
232
 
233
- After all implementation tasks complete, run these scripts in sequence and halt on failure:
233
+ After all implementation tasks complete, run these scripts in sequence and halt on failure.
234
+ Run each standalone (NO pipe) and read its exit code directly — `$?` after a pipe is the last command's code (R005, #1492):
234
235
 
235
236
  1. bash .github/scripts/verify-template-sync.sh
236
237
  2. bash .github/scripts/verify-wiki-sync.sh
238
+ 3. bun .github/scripts/validate-docs.ts --programmatic-only
237
239
 
238
- If either fails:
240
+ If any fails:
239
241
  - For wiki-sync failures: delegate to wiki-curator to generate missing pages (`/omcustom:wiki ingest <path>`)
242
+ (Regenerating the wiki source-hash manifest targets `wiki/.source-hashes.json` ALWAYS — NEVER `templates/manifest.json`. Command: `bash .github/scripts/lib/source-hash.sh generate wiki/.source-hashes.json`. Ref #1423.)
240
243
  - For template-sync failures: delegate to mgr-updater to sync `.claude/` -> `templates/.claude/`
241
- - After fixes, re-run the scripts until both pass
244
+ - For validate-docs failures (count mismatch): delegate to mgr-updater to fix counts via EXHAUSTIVE grep across all docs — file-enumeration misses `.en`/`.ko` variants and secondary docs (#1521 — v1.1.32에서 validate-docs 누락으로 push 왕복 1회 발생)
245
+ - After fixes, re-run the scripts until all pass
242
246
 
243
247
  This mirrors CI and prevents the known 1-2 wasted push cycles per release (ref: issue #927, v0.98.0 PR #925).
244
248
  description: "Per-issue implementation with lifecycle, specialist routing, and CI-mimic verification"
@@ -299,10 +303,17 @@ steps:
299
303
  Determine NEW version per semver rules below.
300
304
  npm project (package.json exists):
301
305
  a. package.json: jq '.version = "<NEW>"' package.json > package.json.tmp && mv package.json.tmp package.json
306
+ # ⚠ jq '.version=...' PRESERVES the manifest structure {version, lastUpdated, omcustomMinClaudeCode, components[]}.
307
+ # Edit ONLY the .version field — do NOT overwrite templates/manifest.json wholesale (e.g. a source-hash path→hash map).
308
+ # Recover a corrupted manifest: git show HEAD:templates/manifest.json | jq '.version="<NEW>"' > templates/manifest.json (#1423/#1154).
302
309
  b. templates/manifest.json: jq '.version = "<NEW>"' templates/manifest.json > templates/manifest.json.tmp && mv templates/manifest.json.tmp templates/manifest.json
303
- c. mgr-gitnerd commit: "chore(release): bump to v<NEW>"
304
- d. mgr-gitnerd push develop
305
- e. mandatory verification (with existence guard for partial-update safety):
310
+ c. bun run build — run standalone (NO pipe), read exit code directly ($? after a pipe is the last command's, R005/#1492).
311
+ This regenerates .omcustom.lock.json (generatorVersion/templateVersion) to <NEW> via scripts/sync-source-lockfile.ts.
312
+ d. git status --short — enumerate ALL tracked drift (`^ M`) the build produced; stage EVERY one (esp. .omcustom.lock.json) before commit.
313
+ (#1531 — .omcustom.lock.json missed staging across 4 consecutive releases after v1.1.29; root cause was no build step between version bump and commit.)
314
+ e. mgr-gitnerd commit: "chore(release): bump to v<NEW>" — MUST include the drift from step d
315
+ f. mgr-gitnerd push develop
316
+ g. mandatory verification (with existence guard for partial-update safety):
306
317
  [ -f scripts/verify-version-sync.sh ] && bash scripts/verify-version-sync.sh || echo "::warning::verify-version-sync.sh not found, version sync verification skipped"
307
318
  (verify-version-sync.sh 가 exit 1 시 release 단계 halt)
308
319
 
@@ -318,12 +329,15 @@ steps:
318
329
  3. Adapt release mechanism to project (determines how steps 3-5 execute):
319
330
  - npm project with auto-tag.yml (this repo — release/v* PR pattern):
320
331
  a. mgr-gitnerd creates release/v{NEW} branch from develop with the version-bump commit
321
- b. mgr-gitnerd creates PR: gh pr create --base develop --head release/v{NEW} --title "chore(release): bump to v{NEW}"
332
+ b. mgr-gitnerd creates PR: gh pr create --base develop --head release/v{NEW} --title "chore(release): bump to v{NEW}" --body "<MUST include 'Closes #N' for EVERY issue this release resolves>"
333
+ ⚠ auto-tag.yml closes issues by grep'ing Closes/Fixes/Resolves keywords in the PR BODY — NOT by milestone membership. If the keywords are missing, no issues close and the workflow still reports success (#1531).
334
+ Before creating the PR (whether via inline --body or --body-file), confirm the body text actually contains a Closes line per issue.
322
335
  c. mgr-gitnerd merges PR (admin merge required due to branch protection)
323
336
  d. DO NOT manually git tag or gh release create.
324
- auto-tag.yml fires on release/v* PR merge → creates tag → closes linked issues → closes milestone → deletes release branch.
337
+ auto-tag.yml fires on release/v* PR merge → creates tag → closes issues linked via PR-body Closes/Fixes/Resolves keywords → closes milestone → deletes release branch.
325
338
  release.yml fires on the tag → npm publish + GitHub Release creation.
326
339
  Milestone close and issue close are handled downstream by auto-tag.yml — do NOT close them manually.
340
+ After merge, verify each targeted issue is actually CLOSED (gh issue view); close manually if still open. Workflow conclusion=success is not evidence of close (#1531 — v1.1.34 Closes-keyword omission left 5 issues open, manual close required).
327
341
  - Non-npm / no auto-tag.yml:
328
342
  mgr-gitnerd: git tag v{NEW} && git push origin v{NEW}
329
343
  mgr-gitnerd: gh release create v{NEW} (with release notes)