Skip to content
Back to skills

Task Taxonomy

ASecurity

Reference for the 6-axis task taxonomy used by adaptive-harness routing. Use when user asks how tasks are classified.

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
researchgoreactexpressfastapikubernetestestingrefactoringgitapidatabase

Works with

  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add SeongwoongCho/adaptive-harness --skill task-taxonomy --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Task Taxonomy?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Task Taxonomy
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/seongwoongcho-task-taxonomy/badge)](https://www.skillsdirectory.com/skills/seongwoongcho-task-taxonomy)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: task-taxonomy
description: "Reference for the 6-axis task taxonomy used by adaptive-harness routing. Use when user asks how tasks are classified."
---

# Task Taxonomy Reference

## Purpose

Adaptive-harness classifies every incoming task on 6 independent axes before routing to a harness. This taxonomy drives the routing decision and ensemble trigger logic. The router agent (LLM-based) reasons over the task description and codebase context to assign values — it does not use keyword heuristics.

---

## The 6 Axes

### Axis 1: task_type

What category of work does this task represent?

| Value | Description | Example tasks |
|-------|-------------|---------------|
| `bugfix` | Fix a defect in existing behavior | "Login fails when email has uppercase letters" |
| `feature` | Add new functionality | "Add dark mode support" |
| `refactor` | Restructure code without changing behavior | "Extract the auth logic into a separate module" |
| `research` | Investigate, experiment, or benchmark | "Compare three approaches to rate limiting" |
| `migration` | Upgrade dependencies or migrate between systems | "Migrate from Express 4 to Fastify" |
| `benchmark` | Measure and analyze performance | "Profile the query execution and find bottlenecks" |
| `incident` | Urgent production issue requiring fast response | "API returning 500s in production right now" |
| `greenfield` | Build a multi-component system from scratch | "Build a FastAPI backend with webhooks, InfluxDB, and Grafana dashboard" |
| `review` | Review code, designs, plans, or PRs | "Review this PR before merging", "Does this design look correct?" |
| `ops` | QA testing, quality validation, or retrospective | "Run acceptance tests on the new feature", "Conduct a sprint retrospective" |
| `release` | Release and ship a versioned artifact | "Cut the 2.0.0 release", "Run the ship workflow for this tag" |

### Axis 2: uncertainty

How well-defined is the solution before implementation begins?

| Value | Description | Signs |
|-------|-------------|-------|
| `low` | Clear solution path; solution is known before starting | Spec exists, existing pattern to follow, fix is obvious |
| `medium` | Solution approach is known but details require exploration | Roughly know what to do, some unknowns in implementation |
| `high` | Solution path is unclear; multiple approaches plausible | Novel problem, no precedent, multiple competing designs |

### Axis 3: blast_radius

How much of the codebase could be affected by this change?

| Value | Description | Signs |
|-------|-------------|-------|
| `local` | Change confined to 1-3 files; no cross-cutting concerns | Single function fix, isolated module addition |
| `cross-module` | Change touches multiple modules or shared interfaces | Modifying a shared utility, changing an API contract |
| `repo-wide` | Change affects the entire codebase or public interfaces | Renaming a core abstraction, changing the data model, upgrading a pervasive dependency |

### Axis 4: verifiability

How easily can success be confirmed after implementation?

| Value | Description | Signs |
|-------|-------------|-------|
| `easy` | Automated tests clearly pass/fail; behavior is deterministic | Unit tests exist, CI passes, output is binary correct/incorrect |
| `moderate` | Tests exist but don't fully capture correctness; human review needed | Integration tests cover most but not all cases; requires spot-checking |
| `hard` | No automated verification; correctness requires deep reasoning or human judgment | Research results, UX quality, architectural soundness, ML model accuracy |

### Axis 5: latency_sensitivity

How time-sensitive is task completion?

| Value | Description | Signs |
|-------|-------------|-------|
| `low` | Quality over speed; thoroughness preferred | Refactoring, migration planning, research, standard development |
| `high` | Fast response critical; speed over comprehensiveness | Production incidents, demo blockers, urgent hotfixes |

### Axis 6: domain

What technical domain does this task primarily involve?

| Value | Description | Separated from |
|-------|-------------|----------------|
| `backend` | Server-side code, APIs, databases, services | — |
| `frontend` | UI, browser code, CSS, accessibility | — |
| `mobile` | Native mobile apps (iOS, Android, React Native, Flutter) | `frontend` |
| `ml-research` | Machine learning, model training, data pipelines, research | — |
| `data-engineering` | ETL pipelines, data warehousing, Spark, Airflow, dbt | `ml-research` |
| `devops` | CI/CD pipelines, deployment automation, observability | `infra` |
| `security` | Vulnerability audits, auth hardening, compliance | `backend` + `infra` |
| `infra` | Infrastructure provisioning, cloud configuration, networking | — |
| `docs` | Documentation, README, API docs, comments | — |

An optional `domain_hint` free-text field may accompany `domain` to give extra context for mixed-domain or niche tasks (e.g., `"also touches devops"`, `"Spark ETL pipeline"`, `"Kubernetes operator"`). This field is for logging and analytics only — it does not affect routing.

---

## How Taxonomy Feeds Routing

The router agent uses these 6 axes to match against harness trigger conditions defined in each `contract.yaml`. Example trigger conditions:

```yaml
# tdd-driven/contract.yaml
trigger:
  task_types: [bugfix, feature]
  uncertainty: [low, medium]
  verifiability: [easy, moderate]

# research-iteration/contract.yaml
trigger:
  task_types: [research, benchmark]
  uncertainty: [high]

# migration-safe/contract.yaml
trigger:
  task_types: [migration]
  blast_radius: [repo-wide]
```

When multiple harnesses match, the router uses historical weights from `.adaptive-harness/harness-pool.json` to break ties, preferring higher-weight harnesses.

---

## Ensemble Trigger Condition

Canonical rule is defined in `agents/router.md` (`<ensemble_rule>`):
`ensemble_required = (uncertainty == "high") AND (verifiability == "hard" OR blast_radius == "repo-wide")`

---

## Fast-Path Condition

The router outputs `skip_routing: true` for **zero-work acknowledgments** that require no code changes, no analysis, and no file modifications:

- Acknowledgments or meta-conversation ("ok", "sounds good", "thanks", "got it")
- Pure clarification questions ("what does X mean?")

The following are NOT fast-path (they require actual work):
- "fix that typo" -- requires a code change
- "add a newline" -- requires a file edit
- "refactor this" -- requires analysis + code changes

---

## Classification Examples

| Task description | task_type | uncertainty | blast_radius | verifiability | latency_sensitivity | domain |
|-----------------|-----------|-------------|--------------|---------------|--------------------|----|
| "Login fails when email has uppercase" | bugfix | low | local | easy | low | backend |
| "Add dark mode to the settings page" | feature | medium | local | moderate | low | frontend |
| "Migrate from Webpack 4 to Vite" | migration | high | repo-wide | moderate | low | frontend |
| "Compare Redis vs Memcached for our cache layer" | research | high | local | hard | low | infra |
| "API is throwing 500s in production" | incident | low | local | easy | high | backend |
| "Extract shared auth logic used in 12 modules" | refactor | medium | cross-module | moderate | low | backend |
| "Add deep link handling to React Native app" | feature | medium | local | moderate | low | mobile |
| "Build Spark ETL pipeline for order aggregation" | feature | medium | local | moderate | low | data-engineering |
| "Add canary deployment stage to CI/CD pipeline" | feature | medium | cross-module | moderate | low | devops |
| "Audit and harden JWT authentication" | refactor | medium | cross-module | moderate | low | security |
| "Build a FastAPI backend with GitHub webhooks, InfluxDB storage, and Grafana dashboards" | greenfield | high | repo-wide | moderate | low | backend |
| "Create a microservice that processes images, stores in S3, and serves via CDN" | greenfield | high | repo-wide | moderate | low | infra |

---

## Usage Notes

- The router agent assigns taxonomy values using LLM reasoning — it reads the task description, considers codebase context, and classifies holistically.
- Classification is logged in every `eval-{timestamp}.json` for retrospective analysis and router accuracy improvement.
- If you believe the router misclassified your task, use `/adaptive-harness:run --harness=name` to override the selection.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.