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
10 changes: 9 additions & 1 deletion .agents/skills/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,24 @@ A complete skill is a directory with a required `SKILL.md` file and optional bun

| Skill | Use it for | Notable resources |
| --- | --- | --- |
| [`ask-questions`](ask-questions/SKILL.md) | Generating high-leverage questions, clarifying missing context, and surfacing assumptions. | [`evals/`](ask-questions/evals/) |
| [`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) |
| [`classify-content`](classify-content/SKILL.md) | Organizing material into meaningful groups by criteria, similarity, priority, dependency, or abstraction level. | [`evals/`](classify-content/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/) |
| [`coordinate-work`](coordinate-work/SKILL.md) | Managing active work across people, agents, tasks, dependencies, blockers, status, and handoffs. | [`evals/`](coordinate/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/) |
| [`decide-direction`](decide-direction/SKILL.md) | Comparing options, weighing tradeoffs, and recommending a direction using explicit criteria. | [`evals/`](decide-direction/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/) |
| [`explain-topic`](explain-topic/SKILL.md) | Explaining general knowledge, concepts, code, behavior, design, architecture, APIs, data flow, and tradeoffs in simple terms. | [`evals/`](explain-topic/evals/) |
| [`explore-context`](explore-context/SKILL.md) | Investigating local repository, project document, and attached-artifact context with evidence. | [`evals/`](explore-context/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/) |
| [`plan-work`](plan-work/SKILL.md) | Sequencing work before execution with phases, dependencies, risks, validation, and next actions. | [`evals/`](plan-work/evals/) |
| [`reason-problem`](reason-problem/SKILL.md) | Working through ambiguous problems, assumptions, hypotheses, and problem framing before deciding or planning. | [`evals/`](reason-problem/evals/) |
| [`remember-context`](remember-context/SKILL.md) | Preserving durable project facts, decisions, conventions, and useful observations in `.agents/memory/`. | [`evals/`](remember-context/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/) |
| [`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/) |
Expand Down
70 changes: 70 additions & 0 deletions .agents/skills/ask-questions/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
name: ask-questions
description: Generate high-leverage questions and clarify missing context. Use for "ask", "what should I ask", "right questions", "what are we missing", "clarify this", and ambiguous requests blocked by unknowns.
license: MIT
version: 1.0.0
tags:
- ask
- clarification
- questions
author: Oleg Shulyakov
metadata:
catalog: utility
---

# ask-questions

Generate the smallest useful set of questions that would change the next action.

## Scope

**Use this skill when the useful output is questions, assumptions, or missing context.**

- **Trigger on clarification**: use for requests such as "what should I ask", "what are the right questions", "what are we missing", "clarify this", and ambiguous requests where progress depends on missing context.
- **Surface gaps**: identify unknown goals, constraints, stakeholders, acceptance criteria, data, ownership, risks, and decision criteria.
- **Stay question-first**: do not make decisions, produce implementation plans, or change files as the primary output.
- **Avoid questionnaires**: ask only the few questions likely to affect the next move unless the user explicitly requests a full discovery list.

---

## Workflow

**Prioritize questions by how much they reduce uncertainty or rework.**

1. Restate the blocked decision or task in one sentence when helpful.
2. Separate known facts from assumptions and missing context.
3. Select the fewest questions that would materially change the next action.
4. Order questions by leverage, dependency, or urgency.
5. Add default assumptions only when they let work proceed despite unanswered questions.

---

## Output

**Return questions the user can answer or send to someone else without cleanup.**

- **Lead with the core gap**: name the uncertainty that makes the questions necessary.
- **Use short lists when useful**: prefer three to seven prioritized questions for normal work.
- **Group only when needed**: use categories such as goal, scope, risk, data, owner, and acceptance criteria only if they improve scanability.
- **Mark blockers**: distinguish must-answer questions from nice-to-have questions.
- **Include assumptions sparingly**: list assumptions only when they affect the question set or proposed next step.

---

## Error Paths

**When the request is too broad, narrow the questions instead of expanding endlessly.**

- **No clear domain**: ask one question about the intended context before generating a detailed set.
- **Too many unknowns**: provide a first-pass discovery set and name what would refine it.
- **User asks for action too**: answer the question-generation part first, then state what can proceed after the answers.

---

## Verification

**Check that every question earns its place.**

- **Remove decorative questions**: delete questions whose answer would not change scope, approach, risk, or acceptance.
- **Check boundaries**: if the output is mainly a recommendation, plan, explanation, or classification, this skill is no longer the right mode.
- **Preserve uncertainty**: do not present assumptions as facts.
60 changes: 60 additions & 0 deletions .agents/skills/ask-questions/evals/evals.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"evals": [
{
"id": "ask-questions-001",
"category": "true-positive",
"prompt": "What should I ask-questions the team before we commit to this migration approach?",
"expected_trigger": "Trigger ask-questions.",
"expected_output": "Produces a short prioritized set of migration questions, with blockers separated from nice-to-have context."
},
{
"id": "ask-questions-002",
"category": "true-positive",
"prompt": "Clarify this feature request and tell me what context is missing.",
"expected_trigger": "Trigger ask-questions.",
"expected_output": "Identifies missing goals, users, scope, acceptance criteria, and assumptions without planning implementation."
},
{
"id": "ask-questions-003",
"category": "true-positive",
"prompt": "What are the right questions to ask before choosing a vendor?",
"expected_trigger": "Trigger ask-questions.",
"expected_output": "Returns high-leverage vendor selection questions ordered by decision impact."
},
{
"id": "ask-questions-004",
"category": "true-positive",
"prompt": "We have an ambiguous request to improve onboarding. What are we missing?",
"expected_trigger": "Trigger ask-questions.",
"expected_output": "Surfaces missing user, workflow, metric, constraint, and success-context questions."
},
{
"id": "ask-questions-005",
"category": "false-positive",
"prompt": "Decide whether we should build or buy the onboarding tool.",
"expected_trigger": "Do not trigger ask-questions as the primary skill.",
"expected_output": "Should compare options and recommend a direction rather than only generating questions."
},
{
"id": "ask-questions-006",
"category": "false-positive",
"prompt": "Plan the onboarding migration in milestones.",
"expected_trigger": "Do not trigger ask-questions as the primary skill.",
"expected_output": "Should sequence work and include risks or verification; questions may appear only as blockers."
},
{
"id": "ask-questions-007",
"category": "non-trigger",
"prompt": "Explain how OAuth refresh tokens work.",
"expected_trigger": "Do not trigger ask-questions.",
"expected_output": "Should explain the concept, not generate a discovery questionnaire."
},
{
"id": "ask-questions-008",
"category": "non-trigger",
"prompt": "Update the README to document the install command.",
"expected_trigger": "Do not trigger ask-questions.",
"expected_output": "Should perform documentation work unless clarification is truly blocking."
}
]
}
70 changes: 70 additions & 0 deletions .agents/skills/classify-content/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
name: classify-content
description: Organize material into meaningful groups. Use for "classify", "categorize", "group", "cluster", "sort", "taxonomy", "organize these", and grouping by criteria, priority, dependency, similarity, or abstraction level.
license: MIT
version: 1.0.0
tags:
- classify
- taxonomy
- organization
author: Oleg Shulyakov
metadata:
catalog: utility
---

# classify-content

Group material by explicit criteria while preserving edge cases.

## Scope

**Use this skill when the primary task is assigning items to meaningful groups.**

- **Trigger on grouping**: use for "classify", "categorize", "group", "cluster", "sort", "taxonomy", "organize these", and requests to group items by explicit criteria.
- **Support many criteria**: group by similarity, difference, category, priority, dependency, abstraction level, user need, risk, ownership, or another stated lens.
- **Respect ambiguity**: keep multi-fit, unclear, or unclassified items visible instead of forcing false precision.
- **Do not decide by default**: classification may inform a decision, but the primary output is labeled organization.

---

## Workflow

**State the grouping lens before assigning items.**

1. Identify the items to classify and any user-provided criteria.
2. Define or infer the grouping criteria, marking inferred criteria as assumptions.
3. Create clear group labels with short definitions.
4. Place each item into one or more groups as appropriate.
5. Call out ambiguous, duplicate, out-of-scope, or unclassified items.

---

## Output

**Make the taxonomy easy to inspect and revise.**

- **Lead with criteria**: state the grouping rule before or alongside the groups.
- **Use stable labels**: choose labels that describe the underlying reason items belong together.
- **Preserve source text**: keep item names recognizable unless normalization is requested.
- **Explain edge cases**: briefly note why ambiguous items are multi-fit or unresolved.
- **Offer refinements**: suggest a better lens only when the requested criteria produce weak groups.

---

## Error Paths

**When the items or criteria are unclear, classify what can be classified and isolate the rest.**

- **No criteria provided**: infer a practical lens and state it as an assumption.
- **Too little item detail**: group by observable wording and list what context would improve accuracy.
- **Conflicting criteria**: choose the primary criterion first, then note secondary tags if useful.

---

## Verification

**Check for useful categories, not tidy-looking fiction.**

- **Every group has a reason**: remove or merge groups whose distinction does not matter.
- **Every item is accounted for**: placed, multi-labeled, or explicitly unclassified.
- **Ambiguity remains visible**: do not hide uncertainty to make the table look clean.
60 changes: 60 additions & 0 deletions .agents/skills/classify-content/evals/evals.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"evals": [
{
"id": "classify-content-001",
"category": "true-positive",
"prompt": "Classify these feature requests by underlying user need.",
"expected_trigger": "Trigger classify-content.",
"expected_output": "States grouping criteria, labels groups, assigns requests, and flags ambiguous items."
},
{
"id": "classify-content-002",
"category": "true-positive",
"prompt": "Group these incidents by root cause pattern and note any multi-fit cases.",
"expected_trigger": "Trigger classify-content.",
"expected_output": "Groups incidents by root cause pattern and preserves incidents that belong to multiple groups."
},
{
"id": "classify-content-003",
"category": "true-positive",
"prompt": "Build a taxonomy for these support tickets.",
"expected_trigger": "Trigger classify-content.",
"expected_output": "Creates clear category labels and places tickets into the taxonomy."
},
{
"id": "classify-content-004",
"category": "true-positive",
"prompt": "Sort these tasks by dependency and priority.",
"expected_trigger": "Trigger classify-content.",
"expected_output": "Defines dependency and priority criteria, then organizes tasks accordingly."
},
{
"id": "classify-content-005",
"category": "false-positive",
"prompt": "Decide which of these three projects we should fund first.",
"expected_trigger": "Do not trigger classify-content as the primary skill.",
"expected_output": "Should compare options and recommend a project using decision criteria."
},
{
"id": "classify-content-006",
"category": "false-positive",
"prompt": "Plan the order for implementing these tasks.",
"expected_trigger": "Do not trigger classify-content as the primary skill.",
"expected_output": "Should produce an execution sequence, not just grouped categories."
},
{
"id": "classify-content-007",
"category": "non-trigger",
"prompt": "Explain why the cache is invalidated on write.",
"expected_trigger": "Do not trigger classify-content.",
"expected_output": "Should explain behavior."
},
{
"id": "classify-content-008",
"category": "non-trigger",
"prompt": "Investigate where the billing webhook is handled.",
"expected_trigger": "Do not trigger classify-content.",
"expected_output": "Should inspect local context and cite files."
}
]
}
71 changes: 71 additions & 0 deletions .agents/skills/coordinate-work/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
name: coordinate-work
description: Manage active work across people, agents, tasks, dependencies, blockers, and handoffs. Use for "coordinate", "manage", "lead this", "assign", "delegate", "track blockers", "status", "handoff", and multi-workstream execution.
license: MIT
version: 1.0.0
tags:
- coordinate-work
- execution
- handoff
author: Oleg Shulyakov
metadata:
catalog: utility
---

# coordinate-work

Keep active work understandable across owners, dependencies, blockers, and handoffs.

## Scope

**Use this skill when execution is active or split across workstreams.**

- **Trigger on coordination**: use for "coordinate, "manage", "team lead", "lead this", "assign", "delegate", "track blockers", "status", "handoff", and multi-agent or multi-workstream requests.
- **Track execution**: maintain goals, owners, dependencies, current status, blockers, decisions, and next actions.
- **Separate from planning**: planning sequences future work; coordination keeps active work moving and handoff-ready.
- **Do not invent authority**: do not silently assign real people without user-provided ownership or clearly stated assumptions.

---

## Workflow

**Maintain a compact execution view that another person or agent can resume from.**

1. Identify the goal, active workstreams, stakeholders, and ownership.
2. Capture status for each workstream: not started, in progress, blocked, review, done, or unknown.
3. Map dependencies and blockers.
4. Define next actions with owner or assumed owner.
5. Update the view as new information arrives.
6. Produce handoff notes when work pauses or transfers.

---

## Output

**Make status, ownership, blockers, and next actions explicit.**

- **Lead with current state**: summarize whether work is on track, blocked, or needs a decision.
- **Use an execution table when useful**: include workstream, owner, status, blocker, dependency, and next action.
- **Separate assumptions**: mark assumed owners, priorities, deadlines, or statuses.
- **Preserve handoff state**: include enough context for continuation without rereading the whole thread.
- **Avoid over-documenting**: keep the view proportional to the number of workstreams.

---

## Error Paths

**When ownership or status is unclear, expose the gap and keep work moving where possible.**

- **Unknown owners**: use "unassigned" or "assumed owner" instead of inventing responsibility.
- **Blocked work**: name the blocker, impact, and unblock action.
- **Conflicting updates**: keep the latest known state and identify the conflict.

---

## Verification

**Check that another capable person could continue from the coordination view.**

- **Every active stream has a next action**: done or blocked streams should say why.
- **Dependencies are visible**: downstream work should show what it waits on.
- **Handoff is concrete**: include open decisions, files, commands, artifacts, and validation status when relevant.
Loading
Loading