adlc-team-skills
Agent skills that give coding agents your team's context at session start, so they stop working like strangers.
The problem
Coding agents start every session knowing nothing about your team. They don't know your conventions, which patterns you deprecated, or why service X never calls service Y. Developers compensate with personal CLAUDE.md files, but those live on one machine, drift out of date, and don't transfer between teammates or tools.
What this does
#1: The agent doesn't know how your team works
team-boot runs at session start and injects an index of your team's
rules, personas, and decisions β names and one-line descriptors, roughly a
hundred tokens. Not the rules themselves. When the active task matches a
rule, the agent pulls that rule's full text on demand. A task touching SQL
loads the SQL rule; nothing else loads.
team-boot β auto-runs at session start (event hook), injects the index
team-discover β /team-discover for a structured match table
team-constitution β interactively define your team's principles
team-repair β re-index, conflict scan, freshness check
The index lives in a git repo (team-ai-directives) β versioned, reviewed by PR, shared by the whole team.
#2: The agent guesses instead of asking
LLMs fill ambiguity with invention. mission-brief forces a contract first:
goal, constraints, non-goals, success criteria β then runs
specify β plan β tasks β implement β converge. When the agent gets something
wrong, you fix the spec, not the code.
mission-brief "add user profile API with JWT"
mission-brief --resume # continue an interrupted mission
#3: The maker grades its own work
The evals skills build executable evaluation suites (PromptFoo or DeepEval).
Anything that can be checked by code gets a binary grader β plain assertions,
Tier 1. LLM judges are Tier 2, reserved for what static checks can't verify.
Nothing auto-merges; the pipeline ends at a PR a human reviews.
evals-init β evals-specify β evals-clarify β evals-implement β evals-validate β evals-analyze
#4: Session learnings evaporate
When a session surfaces a hard-won fix, levelup-specify extracts it as a
Context Directive Record (CDR) and commits it back to the team repo β the
next session starts smarter.
levelup-init β levelup-specify β levelup-clarify β levelup-publish
#5: Product and architecture decisions are invisible
product-* skills capture product decisions as PDR files and compile them
into PRD.md. architect-* skills capture architecture decisions as ADRs
(Rozanski & Woods viewpoints) and compose them into AD.md. Every decision
traces from record to document to code.
product-init|specify β product-clarify β product-implement β product-analyze
architect-init|specify β architect-clarify β architect-implement β architect-analyze
#6: Rules pile up and rot
Base models improve; yesterday's scaffolding becomes today's context noise.
team-repair --build-to-delete re-runs evals without a rule; if the model
passes anyway, the rule is proposed for deletion. Rules should shrink over
time, not grow.
A note on context stuffing
Long contexts measurably degrade LLM performance β even with perfect retrieval (arXiv:2510.05381, 13.9%β85% degradation by length alone). This repo exists because of that failure mode, not in spite of it: agents get an index by default and pull full rules only when relevant. If your instinct is "more rules in context don't work" β we agree. That's the design.
Install
# Skills + slash commands + session_start events
npx adlc-skills-cli add tikalk/adlc-team-skills -a opencode
# Or plain skills (no commands/events)
npx skills add tikalk/adlc-team-skills -a claude -g
Works with any agent supporting the Agent Skills standard β Claude Code, Codex, OpenCode, Cursor, Copilot, and others.
adlc-skills-cli wraps npx skills add
and additionally generates /name slash commands and wires session_start event
hooks (via .events.json) for 9 coding agents. Skills repos without .events.json
get commands only.
First run: team-boot fires at session start. On an unconfigured project
it points you to /team-setup, which clones, links, or scaffolds your
team-ai-directives repo. team-constitution fills in your principles.
Using agentic-sdlc-spec-kit alongside this repo? See
Coexistence with Spec Kit for the
conflict-free install flow.
Universal orchestration
mission-brief doesn't force a proprietary ecosystem. At mission start it
scans installed skills directories, reads each SKILL.md frontmatter, and
hands the inventory to the subagent β the model picks the skill that fits
each step. Works alongside:
| Source | Examples |
|---|---|
| mattpocock/skills | /tdd, /grill-me, /code-review |
| addyosmani/agent-skills | Exit-criteria checklists |
| superpowers | Workflow skills |
| spec-kit / agentic-sdlc-spec-kit / OpenSpec | SDD command frameworks |
| This repo | product-specify, architect-specify, evals-validate, levelup-specify |
| Your own | Anything following the SKILL.md standard |
Security
On 2026-07-27 a supply-chain worm briefly injected a malicious payload into
this repo's .claude/ and .vscode/ directories via a stolen maintainer
token (exposure window ~11:06β18:30 UTC). The payload only executed if you
cloned the repo and opened it in VS Code or started a Claude Code session
inside it; the npx skills install path never shipped or ran those files.
History was rewritten to strip the payload from all commits and tags, tokens and secrets were rotated, and branch protection now blocks the vector used. Details and remediation steps: issue #1.
Lesson for any repo: treat .vscode/tasks.json and .claude/settings.json
in a clone as executable code, and disable editor auto-run tasks.
Reference
Team Directives
team-bootβ session-start bootstrap; injects the directives index. Auto-triggered.team-discoverβ manual re-scan; structured match table (/team-discover).team-setupβ clone, link, or scaffold a team-ai-directives repo.team-constitutionβ define or amend team principles interactively.team-repairβ re-index, conflict scan, freshness,--build-to-delete.team-skillsβ browse/install team skills from the directives repo.
LevelUp / CDR lifecycle
levelup-initβ brownfield CDR discovery from an existing codebase.levelup-specifyβ extract CDRs + paired evals from the current session.levelup-clarifyβ review, accept, reject, or defer pending CDRs.levelup-publishβ compile accepted CDRs into directives + goldensets + draft PR.
Product (PDRs)
product-initβ brownfield PDR discovery.product-specifyβ greenfield creation.product-clarifyβ refine and approve.product-implementβ generatePRD.md.product-analyzeβ PDRβPRD consistency.product-roadmapβ milestone progress.
Architecture (ADRs)
architect-initβ reverse-engineer ADRs.architect-specifyβ create ADRs.architect-clarifyβ refine.architect-implementβ generateAD.md.architect-analyzeβ ADRβAD consistency.
Evals
evals-initβ scaffoldevals/{system}/with security baseline.evals-specifyβ extract criteria from specs / failure traces.evals-clarifyβ cluster, isolate holdout, publish goldset.evals-implementβ generate graders + unit tests.evals-validateβ run evaluation pyramid, TPR/TNR + SLA headroom.evals-analyzeβ route failures to rules or evaluator backlog.
Orchestration & misc
mission-briefβ spec-contract pipeline with converge loop, circuit breaker, resume.tech-radar-contextβ injects Tikal Tech Radar context for tech choices. Auto-triggered.workspaceβ multi-repo workspace:--initcreates.adlc/structure +.gitignore, discover/link/audit child repos.
Skills are organized into category subdirectories under skills/:
skills/
βββ architect/ # architect-* (5 skills)
βββ product/ # product-* (6 skills) + product-templates/
βββ levelup/ # levelup-* (4 skills) + levelup-helpers.{sh,ps1}
βββ mission-brief/ # core SDD orchestrator (1 skill)
βββ evals/ # evals-* (6 skills) + evals-templates/
βββ tech-radar/ # tech-radar-* (1 skill) + resources/radar.json
βββ workspace/ # workspace (1 skill) β multi-repo coordination
βββ team/ # team-* (6 skills) + team-helpers.{sh,ps1}
This places every single skill exactly 2 levels deep, fully resolving the default depth limit of the skills CLI and ensuring all skills install out of the box.
All skills write to .adlc/ (project root) and the team AI directives repo.
Team Directives (inside the team AI directives repository):
AGENTS.mdβ agent instructions (loading order, rules, skills)CDR.mdβ index of approved context contributions.skills.jsonβ skills manifest (schema v2.0.0).mcp.json.exampleβ MCP servers config examplecontext_modules/constitution.mdβ team constitution (OKF frontmatter)context_modules/{rules,personas,examples}/**/*.mdβ context modulescontext_modules/{type}/index.mdβ progressive disclosure per concept typecontext_modules/{type}/log.mdβ chronological change log per concept typeskills/{name}/SKILL.md+.skills-entry.jsonβ published team skillsevals/{directive-id}/goldset.md+goldset.jsonβ directive compliance goldensets
LevelUp (inside .adlc/ of the target project):
.adlc/drafts/cdr/CDR-{NNN}.mdβ proposed/discovered CDRs (including eval CDRs).adlc/drafts/cdr/cdr.mdβ auto-generated CDR index.adlc/init-options.jsonβ team AI directives path config
Product (inside .adlc/ and repo root):
.adlc/drafts/pdr/PDR-{NNN}.mdβ proposed/discovered PDRs.adlc/drafts/pdr/pdr.mdβ auto-generated PDR index.adlc/memory/pdr/PDR-{NNN}.mdβ accepted/completed PDRs.adlc/memory/pdr/pdr.mdβ accepted PDR index.adlc/product/sections/{feature-area}/{section}.mdβ PRD section build artifacts.adlc/product/state.jsonβ DAG execution statePRD.mdβ Product Requirements Document (repo root)
Architecture (inside .adlc/ and repo root):
.adlc/drafts/adr/ADR-{NNN}.mdβ proposed/discovered ADRs.adlc/drafts/adr/adr.mdβ auto-generated ADR index.adlc/memory/adr/ADR-{NNN}.mdβ accepted ADRs.adlc/memory/adr/adr.mdβ accepted ADR indexAD.mdβ Architecture Description (repo root).adlc/architect/β per-view DAG artifacts
Missions (inside .adlc/ of the target project):
.adlc/workflow/workflow-config.ymlβ mission execution/supervision/budgets config.adlc/workflow/.mission-state.jsonβ step list, completed steps, brief, discovery results.adlc/workflow/runs/<feature>/mission-log.jsonβ final audit trail.adlc/workflow/runs/<feature>/iterations.mdβ per-implement audit entries
Governance (inside target project and repo root):
.adlc/drafts/evals/EVAL-{NNN}.mdβ proposed/discovered eval criteria drafts.adlc/drafts/evals/evals.mdβ draft evals index.adlc/memory/evals/EVAL-{NNN}.mdβ accepted/completed eval criteria.adlc/memory/evals/evals.mdβ accepted evals index.adlc/memory/evals/holdout.jsonβ isolated/reserved holdout test datasetevals/{system}/goldset.mdβ published goldset (human-readable)evals/{system}/goldset.jsonβ published goldset (machine-readable)evals/{system}/config.ymlβ evaluation framework configurationevals/{system}/config.{js,py}β framework test configevals/{system}/graders/check_*.pyβ generated binary Python graders / metricsevals/{system}/tests/test_check_*.pyβ generated unit tests verifying grader correctnessevals/results/validation_report.mdβ statistical validation results report
Workspace (inside parent repo root):
.gitmodulesβ Git submodule registrations for child repos (created by--link).adlc/β shared team context (PDRs, ADRs, CDRs); parent is the single source of truth- Child repos discovered at depth 1; each child's
.adlc/presence is reported (informational)
Generated context modules include Open Knowledge Format (OKF) v0.1 compliant frontmatter alongside custom fields.
| OKF field | Status | Source |
|---|---|---|
type |
β | CDR context type |
title |
β | CDR title |
description |
β | CDR descriptor |
resource |
β | Relative path to artifact |
tags |
β | Context type tag |
timestamp |
β | ISO 8601 datetime |
Custom fields co-exist with OKF frontmatter: id, cdr_ref, created, modified, verified, age_days, evidence.
Directory structure: context_modules/{type}/index.md (progressive disclosure), context_modules/{type}/log.md (change history), cross-links between related concepts.
Team Directives setup:
team-setup β team-constitution β team-boot (auto at session start)
Product lifecycle:
Brownfield: product-init β product-clarify β product-implement β product-analyze
Greenfield: product-specify β product-clarify β product-implement β product-analyze
Roadmap: product-roadmap (anytime)
Architecture lifecycle:
Brownfield: architect-init β architect-clarify β architect-implement β architect-analyze
Greenfield: architect-specify β architect-clarify β architect-implement β architect-analyze
LevelUp / CDR lifecycle:
Brownfield: levelup-init β levelup-clarify β levelup-publish β team-repair
Session: levelup-specify β levelup-clarify β levelup-publish β team-repair
Build to Delete: team-repair --build-to-delete β levelup-clarify (review deletion CDRs)
Mission:
mission-brief "feature" β review brief β execute steps β converge β mission-log.json
Multi-repo workspace:
workspace --init β create .adlc/ structure + configure .gitignore
product-specify / architect-specify β create shared PDRs/ADRs in parent .adlc/
workspace --link β register child repos as submodules
workspace --status β audit branch, dirty, unpushed, SHA drift
Application Evaluation lifecycle:
Greenfield (Spec-Driven): evals-init β evals-specify (from spec) β evals-clarify β evals-implement β evals-validate
Brownfield (Error-Driven): evals-init β evals-specify (from failures) β evals-clarify β evals-implement β evals-validate β evals-analyze
Full product β architecture β team:
Product: product-specify β product-clarify β product-implement β product-analyze
Architecture: architect-specify β architect-clarify β architect-implement β architect-analyze
Team: levelup-specify β levelup-clarify β levelup-publish β team-repair
This repo implements the Twelve-Factor Agentic SDLC.
| Factor | Skills | How |
|---|---|---|
| III β Mission Definition | Product skills | PRD/PDR lifecycle ensures product decisions are documented, reviewed, and traceable before execution |
| IV β Structured Planning | Architecture skills | ADRs and AD.md provide structured planning artifacts using Rozanski & Woods viewpoints |
| VII β Verification-First Evals | LevelUp + Evals skills | LevelUp creates directive-compliance eval CDRs; evals skills build and run application-level evaluation suites (PromptFoo/DeepEval) with binary graders, holdout splits, and statistical validation |
| VIII β Ratchet Effect | LevelUp + Evals skills | Each session extracts eval CDRs alongside directive CDRs; each goldset publication adds criteria that monotonically increase quality β evals-clarify publishes, evals-validate enforces |
| IX β Traceability | Product + Architecture | Every decision traces from PDR β PRD β feature and from ADR β AD β code |
| X β Context Engineering | Team Directives | team-boot assembles constitution, CDR index, and PDR/ADR indexes into the system prompt at session start; team-discover provides manual re-scan |
| XI β Directives as Code | Team + LevelUp + Product + Architecture | All directive lifecycles (CDR, PDR, ADR) live in version-controlled repos, each with draft β clarify β accept β publish β analyze stages |
| XII β Build to Delete | team-repair + evals-analyze | --build-to-delete runs evals without directives via LLM calls; if model passes, proposes deletion (Harness Decay); evals-analyze routes spec failures to levelup-specify (rules) and generalization failures to the evaluator backlog β the feedback loop that makes build-to-delete verifiable |
Release Process
See RELEASE.md for the release runbook, tag naming conventions, and recovery procedures.
License
MIT β see LICENSE.
No comments yet
Be the first to share your take.