Skip to content

Task Classification (SSOT)

This document is the Single Source of Truth (SSOT) for task classification in this project. All labels, task types, and their mappings are defined here.

Overview

Task classification determines:

  1. Which GitHub labels to apply to issues
  2. Which context files to load when working on tasks
  3. Which Skills to use for implementation

Label Categories

Type Labels (Required)

Define the nature of the task.

LabelDescriptionContext FileKeywords
bugSomething isn't workingdocs/task-contexts/bug-fix.mdbug, fix, error, issue
enhancementNew feature or requestdocs/task-contexts/feature-add.mdadd, implement, feature, new
refactoringCode improvement without changing functionalitydocs/task-contexts/refactoring.mdrefactor, reorganize, move, cleanup
documentationDocumentation updatesdocs/task-contexts/documentation.mddocument, README, docs, comment
securitySecurity-related issuesdocs/task-contexts/security.mdsecurity, vulnerability, CVE
technical-debtCode quality improvementsdocs/task-contexts/refactoring.mddebt, cleanup, improve
testTest additions or fixesdocs/task-contexts/test.mdtest, coverage, spec

Language Labels (For Code Tasks)

Specify the programming language involved.

LabelDescriptionSkillVerification
lang:goGo language codego-developmentmake go-lint && make go-test
lang:typescriptTypeScript/JavaScript codetypescript-developmentnpm run lint && npm run build
lang:soliditySolidity smart contractssolidity-developmenttruffle compile && truffle test

Scope Labels (For Non-Code Tasks)

Specify the scope when not primarily code changes.

LabelDescriptionSkillVerification
scope:docsDocumentation files (docs/, *.md)docs-updateMarkdown formatting
scope:devopsCI/CD, GitHub Actions, Dockerdevopsyamllint, workflow test
scope:scriptsShell scripts (scripts/, *.sh)shell-scriptsmake shfmt
scope:makefileMakefile and make/ directorymakefile-updatemake mk-lint
scope:dbDatabase schema and migrationsdb-migrationmake atlas-lint && make sqlc
scope:configConfiguration files (config/, .toml,.yaml)-Syntax validation
scope:protoProtocol Buffer definitions (proto/)-protoc compilation

Chain Labels (For Cryptocurrency Tasks)

Specify the blockchain when applicable.

LabelDescriptionKeywords
chain:btcBitcoin (BTC) relatedBitcoin, BTC, Taproot, Descriptor, PSBT, MuSig2
chain:bchBitcoin Cash (BCH) relatedBitcoin Cash, BCH, CashAddr
chain:ethEthereum (ETH) relatedEthereum, ETH, Gas, Nonce
chain:erc20ERC-20 token relatedERC-20, token
chain:xrpXRP/Ripple relatedRipple, XRP, Destination Tag
chain:allAffects all supported chainsmulti-chain, all chains

Test Scope Labels (For Test Tasks)

Specify the test granularity when Type is test.

LabelDescriptionVerification
unit-testUnit test additions or fixesmake go-test
integration-testIntegration test additions or fixesmake go-test-integration
e2e-testEnd-to-end test additions or fixesmake btc-e2e-*

Label Selection Rules

Required Labels

Every issue must have:

  1. One Type label (bug, enhancement, refactoring, documentation, security, technical-debt, test)
  2. One Language OR Scope label (lang:or scope:)

Optional Labels

  • Chain label: Only for cryptocurrency-specific code
  • Test Scope label: Only when Type is test

Task Detection from Labels

When working on a GitHub Issue, determine task context from labels:

Priority Order:
1. Type label → Context file
2. Language label → Skill + Verification commands
3. Scope label → Skill + Verification commands (if no language label)
4. Chain label → Chain-specific context
5. Test Scope label → Test-specific verification

Example Mappings

LabelsSkills UsedContext Files
bug, lang:go, chain:btcgit-workflow + go-developmentbug-fix.md, chains/btc.md
enhancement, lang:typescript, chain:xrpgit-workflow + typescript-developmentfeature-add.md, chains/xrp.md
test, lang:go, unit-testgit-workflow + go-developmenttest.md
documentation, scope:docsgit-workflow + docs-updatedocumentation.md
refactoring, scope:db, lang:gogit-workflow + db-migration + go-developmentrefactoring.md, db-change.md

Context File Mapping

Task TypePrimary ContextAdditional Contexts
bugbug-fix.md-
enhancementfeature-add.md-
refactoringrefactoring.md-
documentationdocumentation.md-
securitysecurity.md-
technical-debtrefactoring.md-
testtest.md-
(with chain:*)chain-specific.mdchains/{chain}.md
(with scope:db)db-change.md-

Verification Commands by File Type

File ExtensionRequiredOptional
*.gomake go-lint, make check-buildmake go-test
*.md, *.mdc-markdownlint
*.sql, *.hclmake atlas-fmt, make atlas-lintmake sqlc
*.yaml, *.toml-yamllint
*.sh-shellcheck, make shfmt
*.protomake proto-
*.ts, *.jsnpm run lint, npm run buildnpm test
  • GitHub Labels - Label definitions with colors
  • .claude/rules/task-context-loading.md - Auto-loading rules
  • .claude/skills/github-issue-creation/SKILL.md - Issue creation workflow
  • Task Contexts - Context file details