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
30 changes: 15 additions & 15 deletions .agents/skills/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@ A complete skill is a directory with a required `SKILL.md` file and optional bun
| Skill | Use it for | Notable resources |
| --- | --- | --- |
| [`audit-skill-security`](audit-skill-security/SKILL.md) | Auditing third-party or local skills before installing, updating, or trusting them. | [`references/audit-protocol.md`](audit-skill-security/references/audit-protocol.md) |
| [`codegen-backend`](codegen-backend/SKILL.md) | Production backend code: APIs, services, middleware, workers, persistence, validation, auth, and backend tests. | [`references/`](codegen-backend/references/), [`evals/`](codegen-backend/evals/) |
| [`codegen-database`](codegen-database/SKILL.md) | Database code: schemas, DDL, OLTP SQL, analytics SQL, migrations, indexes, stored procedures, and dialect-specific scripts. | [`references/`](codegen-database/references/), [`evals/`](codegen-database/evals/) |
| [`codegen-frontend`](codegen-frontend/SKILL.md) | Production frontend code: components, routes, client state, forms, styling, accessibility, performance, PWA behavior, and visualization. | [`references/`](codegen-frontend/references/), [`evals/`](codegen-frontend/evals/) |
| [`codegen-test`](codegen-test/SKILL.md) | Automated tests and evals, including E2E, API, integration, performance, AI output, tool-use, RAG, and prompt regression suites. | [`references/`](codegen-test/references/), [`scripts/`](codegen-test/scripts/), [`evals/`](codegen-test/evals/) |
| [`creator-rule`](creator-rule/SKILL.md) | Writing or improving agent rules, instruction files, `AGENTS.md`, `CLAUDE.md`, Cursor rules, Copilot instructions, and `.agents/rules/*.md`. | [`scripts/`](creator-rule/scripts/), [`evals/`](creator-rule/evals/) |
| [`creator-skill`](creator-skill/SKILL.md) | Creating, editing, reviewing, evaluating, packaging, optimizing, or improving skills. Start here for skill authoring. | [`references/`](creator-skill/references/), [`scripts/`](creator-skill/scripts/), [`eval-viewer/`](creator-skill/eval-viewer/), [`agents/`](creator-skill/agents/), [`assets/`](creator-skill/assets/), [`evals/`](creator-skill/evals/) |
| [`build-backend`](build-backend/SKILL.md) | Production backend code: APIs, services, middleware, workers, persistence, validation, auth, and backend tests. | [`references/`](build-backend/references/), [`evals/`](build-backend/evals/) |
| [`build-database`](build-database/SKILL.md) | Database code: schemas, DDL, OLTP SQL, analytics SQL, migrations, indexes, stored procedures, and dialect-specific scripts. | [`references/`](build-database/references/), [`evals/`](build-database/evals/) |
| [`build-frontend`](build-frontend/SKILL.md) | Production frontend code: components, routes, client state, forms, styling, accessibility, performance, PWA behavior, and visualization. | [`references/`](build-frontend/references/), [`evals/`](build-frontend/evals/) |
| [`write-tests`](write-tests/SKILL.md) | Automated tests and evals, including E2E, API, integration, performance, AI output, tool-use, RAG, and prompt regression suites. | [`references/`](write-tests/references/), [`scripts/`](write-tests/scripts/), [`evals/`](write-tests/evals/) |
| [`create-rule`](create-rule/SKILL.md) | Writing or improving agent rules, instruction files, `AGENTS.md`, `CLAUDE.md`, Cursor rules, Copilot instructions, and `.agents/rules/*.md`. | [`scripts/`](create-rule/scripts/), [`evals/`](create-rule/evals/) |
| [`create-skill`](create-skill/SKILL.md) | Creating, editing, reviewing, evaluating, packaging, optimizing, or improving skills. Start here for skill authoring. | [`references/`](create-skill/references/), [`scripts/`](create-skill/scripts/), [`eval-viewer/`](create-skill/eval-viewer/), [`agents/`](create-skill/agents/), [`assets/`](create-skill/assets/), [`evals/`](create-skill/evals/) |
| [`design-api`](design-api/SKILL.md) | Contract-first API design for OpenAPI, AsyncAPI, GraphQL, endpoints, schemas, and request/response shapes. | [`references/`](design-api/references/), [`evals/`](design-api/evals/) |
| [`explain`](explain/SKILL.md) | Explaining general knowledge, concepts, code, behavior, design, architecture, APIs, data flow, and tradeoffs in simple terms. | [`evals/`](explain/evals/) |
| [`operator-git`](operator-git/SKILL.md) | Git branch naming, branch actions, commit-message drafting, and committing staged changes. | [`references/`](operator-git/references/), [`evals/`](operator-git/evals/) |
| [`manage-git`](manage-git/SKILL.md) | Git branch naming, branch actions, commit-message drafting, and committing staged changes. | [`references/`](manage-git/references/), [`evals/`](manage-git/evals/) |
| [`review-code`](review-code/SKILL.md) | Reviewing code changes, diffs, pull requests, branches, or patches for correctness, regressions, security, performance, and test gaps. | [`references/`](review-code/references/), [`evals/`](review-code/evals/) |
| [`writer-prd`](writer-prd/SKILL.md) | Product requirements, product briefs, feature requirements, product scope, and launch requirements. | [`references/`](writer-prd/references/), [`evals/`](writer-prd/evals/) |
| [`writer-spec`](writer-spec/SKILL.md) | Technical specs, design docs, functional and non-functional requirements, data contracts, UI specs, release specs, and handoff docs. | [`references/`](writer-spec/references/), [`evals/`](writer-spec/evals/) |
| [`writer-tech-docs`](writer-tech-docs/SKILL.md) | READMEs, API docs, endpoint references, routine and on-call runbooks, changelogs, and release notes. | [`references/`](writer-tech-docs/references/), [`evals/`](writer-tech-docs/evals/) |
| [`writer-user-story`](writer-user-story/SKILL.md) | User stories, acceptance criteria, developer tasks, tickets, story points, and sprint planning breakdowns. | [`references/`](writer-user-story/references/), [`evals/`](writer-user-story/evals/) |
| [`write-prd`](write-prd/SKILL.md) | Product requirements, product briefs, feature requirements, product scope, and launch requirements. | [`references/`](write-prd/references/), [`evals/`](write-prd/evals/) |
| [`write-spec`](write-spec/SKILL.md) | Technical specs, design docs, functional and non-functional requirements, data contracts, UI specs, release specs, and handoff docs. | [`references/`](write-spec/references/), [`evals/`](write-spec/evals/) |
| [`write-tech-docs`](write-tech-docs/SKILL.md) | READMEs, API docs, endpoint references, routine and on-call runbooks, changelogs, and release notes. | [`references/`](write-tech-docs/references/), [`evals/`](write-tech-docs/evals/) |
| [`write-user-story`](write-user-story/SKILL.md) | User stories, acceptance criteria, developer tasks, tickets, story points, and sprint planning breakdowns. | [`references/`](write-user-story/references/), [`evals/`](write-user-story/evals/) |

## Resource Folders

Expand All @@ -36,17 +36,17 @@ A complete skill is a directory with a required `SKILL.md` file and optional bun

## Common Entry Points

Use [`creator-skill`](creator-skill/SKILL.md) to create, revise, package, or evaluate skills. Its schema notes live in [`creator-skill/references/schemas.md`](creator-skill/references/schemas.md), and its package command is:
Use [`create-skill`](create-skill/SKILL.md) to create, revise, package, or evaluate skills. Its schema notes live in [`create-skill/references/schemas.md`](create-skill/references/schemas.md), and its package command is:

```bash
cd .agents/skills/creator-skill
python3 -m scripts.package_skill ../codegen-database /tmp/skills-dist
cd .agents/skills/create-skill
python3 -m scripts.package_skill ../build-database /tmp/skills-dist
```

Use this validation command when changing an existing skill:

```bash
python3 .agents/skills/creator-skill/scripts/quick_validate.py .agents/skills/codegen-database
python3 .agents/skills/create-skill/scripts/quick_validate.py .agents/skills/build-database
```

The key rule is simple: keep `SKILL.md` and any files it references together. If a skill says to read `references/postgres.md`, that file must remain available relative to the skill folder. Tiny rule, large consequences. Filesystems enjoy pettiness.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: codegen-backend
name: build-backend
description: Build or modify backend implementation. Use for API routes, services, middleware, workers, persistence, validation, authorization, configuration, observability, and backend behavior tests.
license: MIT
version: 1.1.0
Expand All @@ -12,7 +12,7 @@ metadata:
catalog: software-team-roles
---

# codegen-backend
# build-backend

Implement backend code for APIs, services, workers, persistence, middleware, validation, authorization, configuration, observability, and behavior tests. Use this as a router: identify the backend language from the request and repository, read exactly one language reference, and read at most one framework reference when the framework signal is explicit or unambiguous.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"skill_name": "codegen-backend",
"skill_name": "build-backend",
"evals": [
{
"id": 1,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: codegen-database
name: build-database
description: >
Generate or modify database code: schemas, DDL, SQL queries, migrations, analytics SQL,
indexes, stored procedures, and dialect-specific database scripts.
Expand All @@ -14,9 +14,9 @@ metadata:
catalog: software-team-roles
---

# codegen-database
# build-database

Generate production-ready database code for schemas, DDL, OLTP queries, analytics SQL, migrations, indexes, stored procedures, and dialect-specific scripts. Use this as a router: classify the database artifact first, detect the dialect from context or repository evidence, then read only the relevant references.
Generate production-ready database code for schemas, DDL, OLTP queries, analytics SQL, migrations, indexes, stored procedures, and dialect-specific scripts. Use this as a router: classify-content the database artifact first, detect the dialect from context or repository evidence, then read only the relevant references.

## Variant Detection

Expand All @@ -26,7 +26,7 @@ Generate production-ready database code for schemas, DDL, OLTP queries, analytic
- **Migrations:** Requests for up/down migrations, Flyway, Liquibase, Rails/ActiveRecord migrations, Alembic, Prisma migrations, rollback, data backfills, or deployment-safe DDL route to `references/migration.md`.
- **OLTP SQL:** Requests for queries, DML, views, indexes, transactions, upserts, stored procedures, or query optimization route to `references/common.md`, then the dialect reference.
- **Analytics SQL:** Requests for warehouses, metrics, cohorts, funnels, retention, partitioned fact tables, dbt-like transformations, BigQuery, Snowflake, or ClickHouse route to `references/analytics.md`, then any matching warehouse reference.
- **Adjacent skills:** Use `report-db-health` for database health findings from existing telemetry. Use `strategy-backup` for backup and recovery policy. Use `writer-spec` for data contracts when the output is prose rather than executable database code.
- **Adjacent skills:** Use `report-db-health` for database health findings from existing telemetry. Use `plan-backup` for backup and recovery policy. Use `write-spec` for data contracts when the output is prose rather than executable database code.
- **Ambiguity:** If the artifact type or database remains genuinely ambiguous after inspecting context, ask one short question naming the likely choices.

## Dialect Routing
Expand Down Expand Up @@ -57,7 +57,7 @@ If the user asks for portable SQL, use `references/common.md` and avoid dialect-
- **Use parameters:** Never generate SQL that interpolates user input into executable statements. Use the placeholder style for the target dialect or framework.
- **Index deliberately:** Tie each recommended index to a query, constraint, or access pattern. Avoid adding write-costly indexes without a reason.
- **Handle concurrency:** Use transactions, locks, isolation levels, uniqueness, idempotency keys, or retry notes when the database operation can race.
- **Respect dialect limits:** Do not mix syntax across engines. If the dialect is unknown and syntax materially differs, ask once instead of producing decorative nonsense in SQL clothing.
- **Respect dialect limits:** Do not mix syntax across engines. If the dialect is unknown and syntax materially differs, ask-questions once instead of producing decorative nonsense in SQL clothing.
- **Verify locally:** Run the narrowest relevant migration check, SQL parser, formatter, test, or application test available. If no database is available, state what was reviewed statically.

## Implementation Flow
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"skill_name": "codegen-database",
"skill_name": "build-database",
"evals": [
{
"id": 1,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Identify the dialect from context. Check in this order:
2. File extensions or migration tool conventions (`.sql`, Flyway prefix `V1__`, Liquibase)
3. Code imports (`pg`, `mysql2`, `sqlite3`, `pyodbc`)
4. Infrastructure mentions ("RDS Postgres", "Azure SQL", etc.)
5. If genuinely ambiguous: ask once — "Which database are you using? (PostgreSQL, MySQL, MSSQL, SQLite, Oracle)"
5. If genuinely ambiguous: ask-questions once — "Which database are you using? (PostgreSQL, MySQL, MSSQL, SQLite, Oracle)"

Once identified, load the dialect-specific reference for syntax details:

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: codegen-frontend
name: build-frontend
description: Generate production-ready frontend code. Use for components, pages, routes, client state, forms, styling, accessibility, performance, PWA behavior, and data visualization.
license: MIT
version: 1.1.0
Expand All @@ -12,7 +12,7 @@ metadata:
catalog: software-team-roles
---

# codegen-frontend
# build-frontend

Implement production frontend work by routing to the smallest relevant reference set, matching the repository's existing architecture, and verifying the user-facing behavior.

Expand All @@ -23,7 +23,7 @@ Implement production frontend work by routing to the smallest relevant reference
- **User signals:** Look for framework names, route or page names, component libraries, state libraries, CSS systems, test tools, file paths, file extensions, and requested user-facing behavior.
- **Repository signals:** Inspect `package.json`, lockfiles, framework configs, `tsconfig.json`, source folders, imports, routing structure, design tokens, Storybook, test setup, and CI jobs before choosing an implementation path.
- **Frontend scope:** Use this skill for components, pages, layouts, routes, loaders/actions, forms, stores, queries, charts, responsive styling, accessibility fixes, PWA behavior, and frontend performance work.
- **Route away:** Use `codegen-test` for test-only work, `design-api` for API contract design, `codegen-backend` for backend implementation, and `writer-spec` or a design skill for UI/UX specification when no code is requested.
- **Route away:** Use `write-tests` for test-only work, `design-api` for API contract design, `build-backend` for backend implementation, and `write-spec` or a design skill for UI/UX specification when no code is requested.
- **Clarify rarely:** If the framework, styling system, or target surface remains genuinely ambiguous after inspection, ask one short question naming the likely options.

## Reference Routing
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"skill_name": "codegen-frontend",
"skill_name": "build-frontend",
"evals": [
{
"id": 1,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: creator-rule
name: create-rule
description: Use when writing or improving CLI-agent rules, custom instruction files, AGENTS.md, CLAUDE.md, Cursor rules, Copilot instructions, or modular `.agents/rules/*.md` files.
license: MIT
version: 1.2.0
Expand All @@ -12,7 +12,7 @@ metadata:
catalog: utility
---

# creator-rule
# create-rule

Write agent rules as durable operating instructions: concise, scoped, concrete, and easy for another agent to apply without guessing.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"skill_name": "creator-rule",
"skill_name": "create-rule",
"evals": [
{
"id": 1,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Heuristic grader for creator-rule output-quality evals.
"""Heuristic grader for create-rule output-quality evals.

This script is intentionally deterministic. It does not replace human review or
model grading; it catches common failures cheaply: vague rules, missing scoped
Expand All @@ -25,7 +25,7 @@
]

IMPERATIVE_RE = re.compile(
r"\b(use|run|never|do not|don't|ask|include|update|avoid|prefer|keep|"
r"\b(use|run|never|do not|don't|ask-questions|include|update|avoid|prefer|keep|"
r"write|add|check|verify|redact|report|call out|do)\b",
re.IGNORECASE,
)
Expand Down Expand Up @@ -164,7 +164,7 @@ def grade(eval_item: dict, output: str) -> dict:


def main() -> int:
parser = argparse.ArgumentParser(description="Grade one creator-rule eval output")
parser = argparse.ArgumentParser(description="Grade one create-rule eval output")
parser.add_argument("--eval-id", type=int, required=True, help="Eval id from evals/evals.json")
parser.add_argument("--output", required=True, help="Path to the generated rule output")
parser.add_argument(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Run creator-rule trigger evals.
"""Run create-rule trigger evals.

By default this uses a transparent lexical router so the eval set can run
offline in CI. Pass --agent-command to test a real CLI/router. The command can
Expand Down Expand Up @@ -30,7 +30,7 @@

NEGATIVE_PATTERNS = [
r"\b(review this pull request|fix the failing|generate SQL|release notes|user story|technical spec)\b",
r"\b(explain|summarize)\b.*\b(AGENTS\.md|README|coding standards)\b",
r"\b(explain-topic|summarize)\b.*\b(AGENTS\.md|README|coding standards)\b",
]


Expand Down Expand Up @@ -120,9 +120,9 @@ def agent_router(command_template: str, query: str, skill_name: str, description


def main() -> int:
parser = argparse.ArgumentParser(description="Run creator-rule trigger evals")
parser = argparse.ArgumentParser(description="Run create-rule trigger evals")
parser.add_argument("--eval-set", default=None, help="Path to trigger-evals.json")
parser.add_argument("--skill-path", default=None, help="Path to creator-rule skill root")
parser.add_argument("--skill-path", default=None, help="Path to create-rule skill root")
parser.add_argument("--agent-command", default=None, help="Optional CLI command template for real routing judgment")
parser.add_argument("--timeout", type=int, default=30)
parser.add_argument("--trials", type=int, default=1, help="Number of repeated runs per query")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Validate creator-rule eval files."""
"""Validate create-rule eval files."""

from __future__ import annotations

Expand All @@ -26,8 +26,8 @@ def validate_task_evals(path: Path) -> list[str]:
errors: list[str] = []
data = load_json(path)

if data.get("skill_name") != "creator-rule":
errors.append("evals.json skill_name must be creator-rule")
if data.get("skill_name") != "create-rule":
errors.append("evals.json skill_name must be create-rule")

evals = data.get("evals")
if not isinstance(evals, list) or not evals:
Expand Down Expand Up @@ -113,7 +113,7 @@ def main() -> int:
print(f"ERROR: {error}", file=sys.stderr)
return 1

print("creator-rule eval files are valid")
print("create-rule eval files are valid")
return 0


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Validate creator-rule skill packaging."""
"""Validate create-rule skill packaging."""

from __future__ import annotations

Expand Down Expand Up @@ -101,7 +101,7 @@ def main() -> int:
print(f"ERROR: {error}", file=sys.stderr)
return 1

print("creator-rule skill is valid")
print("create-rule skill is valid")
return 0


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: creator-skill
name: create-skill
description: Use when creating, editing, reviewing, evaluating, packaging, optimizing or improving skills.
license: Apache-2.0
version: 1.1.3
Expand All @@ -12,7 +12,7 @@ metadata:
catalog: utility
---

# creator-skill
# create-skill

Create new skills, review and improve existing skills, evaluate outputs, optimize trigger descriptions, and package final skill folders.

Expand Down
Loading
Loading