Skip to content

Releases: tikalk/adlc-team-skills

adlc-team-skills v0.32.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 21:42
9c52ec3
adlc-team-skills-v0.32.0

v0.32.0

adlc-team-skills v0.31.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 16:45
51bfb85

Added

  • Factory-owned issues-provider.yml tracker config (ADR-427) — the factory release ships a canonical provider template (skills/factory/factory-mission/references/issues-provider.yml, rename-only from spec-kit's taskstoissues-provider.yml schema, never-tokens rule retained); target repos carry a committed copy at .adlc/issues-provider.yml. tracker-integration.md §1 now resolves {{params.tracker_provider}} → new path → loud halt, deleting both the silent github default that mis-targeted repos without spec-kit and the legacy spec-kit path read (repos carrying only the old file must add the factory-canonical copy; spec-kit itself untouched). No shipped factory file references .specify. Pinned by tests/unit/test_issues_provider_contract.py.

  • factory-setup (skills/factory/factory-setup/, ADR-428) — setup-time companion to the tracker-integration layer: detect-from-git-remote / pick-explicitly / already-configured modes write .adlc/issues-provider.yml (provider + mappings only, never credentials, never overwrite; decline is session-scoped, no init-options marker). team-boot suggests it when factory skills are installed but no provider config resolves; tracker-integration.md halt names it as the fix path. Pinned by tests/unit/test_factory_setup_contract.py + goldset EVAL-FACTORY-015 with grader check_no_credential_in_provider. Mode 3 also verifies the required label vocabulary and offers confirm-gated creation of missing labels (interactive only, re-verified; Jira/Linear excluded).

  • factory-review re-reviews final head after fix pushes (#68) — SKILL.md §2 step 8 + §4 babysit carry the re-review-after-fix procedure (verdict certifies exactly one head SHA; merge-ready on a superseded head is a contract violation); setup-architect.sh regeneration refuses on uncommitted AD.md without FORCE_REGENERATE=1.

  • Refusal-aware eval graders + thinking-suppression (#67) — check_factory_invariants.py ADR-338/PDR-052 checks exempt forbidden tokens inside refusals via a ±60-char negation window; config.js prompt bans thinking/deliberation preamble and input-token quoting (the goldset leak source). Grader unit tests 85/85.

  • Warn-and-continue on absent team-boot context (#66, closes #58) — six ## Absent Context banners (architect/product/change/tech-radar boots, team-levelup, team-discover) with direct index-read fallback and Recovery: run /team-diagnose; factory-mission/factory-review/factory-queue read the index directly (ADR-401 dual-read order); factory-learn retrospective sweeps .adlc/drafts/ for unclarified entries.

Changed

  • Single merged Team Context & Decisions table (#56) — the per-response Team Context in Use section and Session Decision Ledger merge into one 6-column table; Status carries the accepted-vs-pending distinction (in use + — = grounding context, never drafts; pending/captured/clarified/handed off + skill = owed decisions); one counts line (_Scope: … — J rows shown · Unrecorded: N pending · Unclarified: M captured drafts._). Pending Decisions session-start inventory unchanged. Pinned by test_single_response_table_contract + test_status_semantics_rule + reshaped header-count assertions.

  • Deck↔code glossary in 12-Factor alignment table (#49, PDR-057) — canonical term mapping (plan-of-record agnosticism, evidence-chain/audit trail, triage scoring, Lit Factory/Ratchet name mapping, mission-brief and team-learn settled renames). Documentation-only.

Fixed

  • Class-boot contract fix: early-fire, 0-rows rendering, radar re-emission, workspace fallback (#50) — class boots now invoke at the START of a matching task (before todo planning/implementation, never deferred); 0 rows matched emits heading + counts/searched line only with no table (a 0-row table header collapsed into unrendered single-line markdown); tech-radar-boot re-emits tool-channel script findings in the visible response; radar-search.sh/.ps1 0-match output drops the empty table; boots in memory-less submodule CWDs fall back to the workspace root memory (.gitmodules marker, ADR-401 dual-read order). Pinned by 5 new class-boot contract tests + 2 radar 0-match tests (tests/unit/test_team_class_boots.py, tests/unit/test_tech_radar.py).
  • Memory centralization migration (#51, ADR-412) — workspace docs/adlc/memory/ is the sole ADR/PDR tracker; the 18 ADRs + 14 PDRs of the legacy untracked .adlc/memory/ verified row-by-row against workspace equivalents (30 duplicates/subsumed, unique PDR-030 → PDR-108 agent-authored stamp and PDR-057 → PDR-109 deck↔code terminology imported); docs/decision-memory.md tombstone carries the record map.
  • Sync-test mirror staleness (#54) — regenerated install artifacts (team-learn → team-levelup); test_generated_artifacts_sync.py green again. Single-canonical-script guard added (test_single_canonical_radar_search_script_pair) after a stale tech-radar-context alias copy of radar-search.sh was found emitting the old 0-match table.
  • Shell-to-Python injection hardening + unescaped JSON builders (#74) — replaced all python3 -c "... open('$VAR') ..." interpolation with sys.argv passing, emit all --json output via json.dumps, dropped eval $() in favor of direct calls/parsed assignment, pinned radar fetch to HTTPS, and allowlisted submodule remotes; setup-architect.sh ~14 echo-built JSON emitters (+2 inner fragment builders) converted to python3/json.dumps via quoted heredocs, and workspace.sh parent_sha_for hardened with || true under set -euo pipefail. Pinned by tests/unit/test_shell_security_regression.py (shellcheck -S error + bash -n clean).
  • UTF-8 BOM on non-ASCII .ps1 scripts for PowerShell 5.1 (#72) — BOM prepended to the 24 non-ASCII scripts under skills/** so PS 5.1 decodes them as UTF-8 instead of the system ANSI codepage (which corrupted multi-byte sequences into bogus string delimiters and broke every team-boot hook on Windows sessions). No logic changes; pwsh/bash ignore the BOM.
  • boot.sh silent crash on missing team_ai_directives key (#65) — the grep extraction pipeline under set -euo pipefail exited 1 with zero output when .adlc/init-options.json existed without the key; wrapped in (...) || true so it falls through to the existing not-configured branch.

adlc-team-skills v0.30.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 21:45
c082ce5

Added

  • Ledger→todo contract alignment across all decision-capture surfaces — the per-decision task-list todo + trailing ledger-sweep todo (shipped in #40 only in the injected AGENTS.md managed section) now also lives in boot.sh/boot.ps1 session-start output (Surface ledger step rewritten), team-boot SKILL.md (Surface step + Verification line), team-boot references/decision-capture.md (new Todo Surfacing section with harness mapping and no-task-list-tool fallback), the four class boots and team-levelup (todo-mirroring sentences), and is documented in team-setup's post-setup reference. Class-boot ledger paragraphs migrated from the stale inline 4-column grammar (Decision | Type | Captured? | Skill) to the unified 6-column grammar (ID | Name | Type | Rel | Status | Clarify). Pinned by test_ledger_todo_contract_on_all_surfaces + test_no_stale_inline_4col_ledger_grammar in tests/unit/test_team_boot_setup_flow.py.

  • Ledger-sweep counts unclarified drafts; change-boot fires on git commands with human-authored messages — the sweep target is now _Unrecorded: 0 pending · Unclarified: 0 drafts_: a captured row exits only via its clarify skill (clarified) or an explicit user handoff to a named clarify or execute skill (handed off), so writing drafts alone can no longer close the sweep. The session-end step delivers a clarify prompt naming each captured draft (ID + skill) instead of pointing at pending drafts. change-boot invocation now covers in-session git commands with human-authored messages (commit/merge/revert/rebase/cherry-pick/tag), authored PR title/body (at create and merge), and CHANGELOG edits — evaluated under the proportionality gate at session end; routine ops with generated or empty messages are not ChDRs. change-boot Step 2's draft scan is renamed to the Unclarified count with a proposed/discovered ↔ captured mapping note, and its description now names both /change-init (mining) and /change-clarify (clarify gate). post-setup-agents.md joins the pinned surface map (edited for #42 but never covered). Pinned by extended test_ledger_todo_contract_on_all_surfaces + new test_change_boot_git_command_trigger.

Changed

  • Renamed team-learn → team-levelup — skill dir, SKILL.md name:, scripts, all cross-refs (boot surfaces, events, helpers, README), and report file .adlc/team-learn-report.md → .adlc/team-levelup-report.md. Retires the stale legacy levelup-* family. Hard rename, no alias or compat shim.

adlc-team-skills v0.29.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 09:33
c7ea451

Added

  • writing-skills (skills/authoring/writing-skills/ + templates/SKILL-template.md + references/skill-testing.md) — TDD-for-skills authoring methodology adapted from superpowers' writing-skills: Iron Law (no skill without a failing baseline first), RED-GREEN-REFACTOR for skills, micro-testing wording protocol, Match-the-Form-to-the-Failure guidance, and this repo's structure rules (2-level depth, trigger-only descriptions, token budgets, eval-coverage requirement).
  • EVAL-011: Writing-Skills Baseline-First Compliance (evals/promptfoo/) — goldset criterion + binary grader check_writing_skills_baseline.py + unit tests: an agent asked to create a skill must run/demand the failing baseline before authoring content.
  • EVAL-012: Factory-Mission RED-Gate Enforcement (evals/promptfoo/) — goldset criterion + binary grader check_factory_mission_tdd.py + unit tests: a green-at-RED suite must stop the run and route to SPEC_CORRECTION_NEEDED, never proceeding to the code step.
  • tests/unit/test_generated_artifacts_sync.py — 3 tests keeping CLI-generated install artifacts (.agents/skills/ mirror, .opencode/commands/) in sync with skills/; skips where artifacts aren't generated. Catch-power proven by mirror-corruption.
  • requirements.txt — pinned dev dependencies matching CI (pytest 9.1.1, pyyaml 6.0.3, deepeval 4.1.5); CONTRIBUTING prerequisites updated to pip install -r requirements.txt.
  • Integrity-test expansion (tests/unit/test_playbook_integrity.py) — description presence + 1024-char limit (validator self-tested against broken fixtures), exact-2-level depth rule, and "Use when…" trigger-only description rule; template frontmatter scan now covers authoring templates.
  • tdd: true key in skills/mission/mission-brief/config-template.yml — documented opt-out for the factory-mission TDD split.
  • session_compact event declared in .events.json — post-compaction re-injection of the team context index is now part of the event contract, not an accident of the OpenCode plugin's per-step transform. The generated plugin's dedup guard prevents double-injection; adlc-skills-cli adapters without a session_compact mapping skip it until they add one. Pinned by test_events_json_declares_session_compact.
  • scripts/acceptance-test.sh — the canonical acceptance test (this repo's "Let's make a react todo list"): scratch-installs via adlc-skills-cli, configures a directives checkout, and asserts boot.sh emits the full index (constitution, CDR rows, class boots, skills); --live adds an opencode smoke check, --directives/--keep for control.
  • .github/workflows/evals-nightly.yml — nightly full PromptFoo sweep (tiered eval model: static gates on every PR, live evals on PRs with OPENAI_API_KEY + nightly on main; loud failure if the secret goes missing). Rationale: fork-PR skill-behavior changes get zero LLM-eval coverage at PR time — the nightly closes the gap.
  • docs/testing.md — the two-directory/three-tier testing map (static gates vs grader unit tests vs live evals), the tiered model, and the known limit that tests/e2e/ tests a re-implementation.
  • docs/event-hook-contract.md — the .events.json + boot-script contract, with the repo boundary drawn: this repo declares events and provides handler output; adlc-skills-cli owns and implements the injection side (dispatcher, plugins, compaction re-injection).
  • .github/PULL_REQUEST_TEMPLATE.md + issue templates (bug_report.md, skill_proposal.md) — PR template carries the baseline-failure section (skill changes), manual-test table, and AI disclosure; skill proposals demand the verbatim baseline transcript up front.
  • diagnosing-team-skills (skills/team/diagnosing-team-skills/) — evidence-first diagnosis of the session-start chain (init-options → jq → boot.sh → artifact sync → injection side), routing injection bugs to adlc-skills-cli with outputs attached. Ships with EVAL-013 (check_diagnosing_evidence_first.py + unit tests): a diagnosis without command output is a guess.
  • Token-budget enforcement (tests/unit/test_playbook_integrity.py) — warn above the 500-line target, fail above the 800-line hard cap; architect-implement (1273 lines) and team-repair (1134 lines) grandfathered in a shrink-only TOKEN_BUDGET_EXEMPT list as tracked debt.
  • CONTRIBUTING additions — canonical acceptance-test section (with the pass condition and PR-evidence rule) and an "If you are an AI agent" checklist: search open+closed PRs, one problem per PR, run the full verification set, follow writing-skills' Iron Law, disclose model/harness/plugins, human-approved diff before submitting.
  • factory-init (skills/factory/factory-init/) — unified brownfield bootstrap orchestrator (5th Kind-A peer): one command drives the product, architecture, and change lifecycles end-to-end (init → clarify⭐ → implement → analyze/publish; track-sequential; per-layer skip on partial state) and emits the PDR↔ADR↔ChDR↔code coverage matrix at .adlc/coverage/coverage.md — feature-area pivot (union row-axis) + four traceability relations (PDR↔ADR, PDR↔code, ADR↔code, ChDR↔code) + family severity model + drift diff vs .adlc/coverage/history/. Owns the recurring cross-layer alignment sweep via --refresh. CDR excluded (team-level, external publish target) — final output recommends factory-learn / /levelup-init instead. Zero new leaf skills. (PDR-072, ADR-361)
  • factory-init eval criteria — binary grader check_factory_init_matrix.py (matrix format integrity: pivot columns, four relations with Coverage: N%, layer-tagged + cited gap lines, Drift/Baseline section) with unit tests, plus check_sweep_layer_routing branch in check_factory_invariants.py (ADR-361 layer-tagged correction routing); wired into goldset-factory.json + config.js.

Changed

  • Mandated TDD gates in factory-mission — the decoupled test/code split (capability #12 / Phase 5) now closes each leg with a mechanical gate: the RED gate runs the Test Agent's suite and requires ≥1 failing test (green-at-RED routes to SPEC_CORRECTION_NEEDED; a code-bearing step never proceeds on a vacuous suite), the GREEN gate blocks converge until the suite passes (failure loops back to the code step without consuming the converge circuit breaker). Exemptions narrowed to declared no-test-surface runs (tdd: false, docs/config-only steps, interactive mode).
  • SDO description audit — every skill description — all SKILL.md descriptions now lead with "Use when…" trigger conditions instead of workflow summaries (mission-brief routes subagents by descriptions; summaries measurably cause agents to follow the description instead of reading the skill body). 46 rewritten; writing-skills and diagnosing-team-skills were authored compliant.
  • README restructured around skills gravity — two-loop framing (session loop + the software factory), factory promoted to a visible top-level section (ASCII outer-loop diagram restored, station-by-station list), gravity-ordered "What's inside" catalog (team-* first, factory second), superpowers-style TOC / Philosophy / When-something-goes-wrong / Contributing sections, fixed stale per-domain layout counts (architect 5→6, product 6→7, levelup 4→5, change 3→4; added missing factory/ and authoring/).
  • Skill depth invariant enforced — skills/mission-brief/ → skills/mission/mission-brief/ and skills/workspace/ → skills/team/workspace/; the documented "exactly 2 levels" rule is now true and tested.
  • RELEASE.md — new "Security design" section (token-exposure posture of the release workflows, moved from auto-tag.yml comments; the workflow header now points to RELEASE.md).
  • Untracked committed __pycache__/*.pyc files — .gitignore already covered __pycache__/; the pre-rule files are removed from the index.
  • Deterministic-checks-first across the capture pipeline (EVAL-010): levelup-clarify gains an enforceability gate (Phase 2b) — mechanical rules (fixed patterns, banned APIs, import/file-location shapes) promote to deterministic checks (action P: unit test / binary grader / pre-commit / lint / CI) before Accept is offered; only judgement calls become context rules. factory-learn's Maintenance route asks promote-to-check alongside build-to-delete. team-repair Phase 0 gains Check 8 (Deterministic Enforcement Coverage) — advisory [WARN] for mechanical rules lacking checks and skills lacking eval coverage; Phase 10 flags promotion candidates; a pre-existing dangling "Check 8" reference in Phase 3 is corrected to Check 7. evals-analyze subclassifies specification failures — mechanical gaps route to grader/unit-test fixes, judgment gaps to /levelup-specify CDRs.
  • EVAL-010 criterion + grader — check_deterministic_first.py binary grader (mechanical classification + deterministic check vehicle required; CDR-only mechanical fixes fail) with unit tests; wired into goldset.md + goldset.json + config.js.
  • README factory outer-loop ASCII diagram — overview box-flow above the mermaid detail: factory-init as the brownfield on-ramp, decision skills before the Intent Gate, queue after it, learn → team-boot closing the context loop.

adlc-team-skills v0.28.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 09:14
0a2a6f6

Added

  • Class Boots — team-boot decomposed into per-class boot skills: team-boot now injects only the always-relevant layer (constitution titles, CDR index, Class Boots catalog, skills registry, MCP servers); the four record classes and tech selection load on demand through five new model-invoked skills, each pairing its index injection with decision capture (read-decisions and record-decisions as one loop):
    • architect-boot (skills/architect/architect-boot/): injects the ADR index (.adlc/memory/adr/) when architecture work starts or a tech-stack/pattern decision emerges; captures via /architect-specify; routes tech-selection ADRs through tech-radar-boot.
    • product-boot (skills/product/product-boot/): injects the PDR index (.adlc/memory/pdr/) for product/feature scope, persona, and monetization work; captures via /product-specify.
    • change-boot (skills/change/change-boot/): injects the published ChDR index (.adlc/memory/chdr.md) when past-change rationale matters (refactors of unfamiliar code, revert/hotfix analysis); captures via /change-init.
    • levelup-boot (skills/levelup/levelup-boot/): CDR deep-dive — reads full context module bodies from team-ai-directives when a task matches CDR descriptors; captures via /levelup-specify. The compact CDR index stays in team-boot (always-on native discovery).
    • tech-radar-boot (skills/tech-radar/tech-radar-boot/): absorbs tech-radar-context (renamed; scripts/ + 424-blip resources/radar.json moved via git mv) and adds decision-capture pairing — tech selections route to /architect-specify with radar evidence. /tech-radar-context remains a documented deprecated alias.
  • Class-boots contract suite (tests/unit/test_team_class_boots.py): pins the five class boots (existence, frontmatter names, description capture-pairing, index sources, per-class searched lines, ledger integration, anti-fabrication) plus the Class Boots catalog across boot.sh/boot.ps1 and all six team-helpers templates.

Changed

  • Lean boot.sh / boot.ps1 (skills/team/team-boot/scripts/): the inline PDR/ADR/ChDR index sections are replaced by a five-row Class Boots catalog; the always-on searched line is now _Searched N CDRs, M skills, J matched._ (class indexes report their own _Searched N <class> records, K matched._ lines when their boot is invoked); the Decision Capture section is compacted to one trigger line per class plus the Session Decision Ledger contract (full guidance lives in the class boots). boot.ps1 gains the Decision Capture section it was missing (parity with boot.sh).
  • CDR index filter fix (boot.sh/boot.ps1): the injected-index row filter now includes rule-* and constitution rows — previously only CDR-*/skill-*/example-* prefixes matched, silently dropping 16 of 34 entries (every context_modules/rules/ module) from the session-start catalog.
  • Unified AGENTS.md managed-section template (team-helpers.sh/team-helpers.ps1 in team-repair, team-setup, team-skills): the managed section now embeds the Class Boots catalog and compact Decision Capture triggers, unifying three previously drifted contract variants (boot.sh, the helper template, and live AGENTS.md files).
  • team-repair Check 7 (skills/team/team-repair/SKILL.md): now validates the project AGENTS.md managed section includes the Class Boots catalog and the Decision Capture contract, not just the team-boot directive.
  • Boot contract tests (tests/unit/test_team_boot_setup_flow.py): the ChDR-inline-injection tests are replaced with Class Boots catalog, per-class searched-line, and compact Decision Capture tests; radar path constants move to tech-radar-boot/; the AGENTS.md test asserts the catalog.

adlc-team-skills v0.27.0

Choose a tag to compare

@github-actions github-actions released this 20 Sep 09:14
0a2a6f6

Added

  • factory-* Category of Orchestrator & Control-Plane Skills (skills/factory/): Creates the control-plane orchestration family for the repo, fully aligned with the "Tikal Solutions | Agentic SDLC Factory" architecture (deck slides 12 & 15).
    • factory-mission (skills/factory/factory-mission/): Copied from mission-brief to serve as the tracker-integrated, TDD-decoupled execution-harness orchestrator.
    • factory-product (skills/factory/factory-product/): Pure product lifecycle orchestrator (specify/init → clarify⭐ → implement → analyze).
    • factory-architect (skills/factory/factory-architect/): Pure architecture lifecycle orchestrator (specify/init → clarify⭐ → implement → analyze).
    • factory-learn (skills/factory/factory-learn/): Continuous improvement learning loop orchestrator (levelup + change + evals feedback + cleanup bot) targeting team-ai-directives.
    • factory-queue (skills/factory/factory-queue/): Control-plane intake and triage (PII scrubbing, AI advisory triage scoring, and label stamping) and milestones/epics generation.
    • factory-review (skills/factory/factory-review/): Severity-ranked PR policy compliance reviews against REVIEW.md (never auto-approves/merges, strictly advisory).
    • Shared References (skills/factory/factory-mission/references/):
      • executor.md: Common, lifecycle-agnostic DAG engine contract (config, resume, brief, steps, gates, circuit-breakers).
      • tracker-integration.md: Tracker-agnostic integration layer sharing spec-kit's configuration model (.specify/taskstoissues-provider.yml) and normalizing GitHub, GitLab, Linear, and Jira with strict dry-run+confirm constraints.

adlc-team-skills v0.26.1

Choose a tag to compare

@github-actions github-actions released this 20 Aug 06:19
93752cc

Added

  • "How it works" + "The Basic Workflow" sections in README (README.md): two new top-level sections, placed between "A note on context stuffing" and "Install", that surface the end-to-end arc before the install/reference walls — team-boot session-start index injection (~hundred tokens, full rules pulled on demand) → team-setup/team-constitution on unconfigured projects → mission-brief spec contract and specify → plan → implement ↔ converge loop (gates, circuit breaker, resume, audit trail) with universal skill scanning (this repo + superpowers + spec-kit + your own) → product-*/architect-* PDR/ADR compilation into PRD.md/AD.md → evals-* binary Tier 1 + LLM Tier 2 graders with holdout/TPR/TNR/SLA, ending at a human-reviewed PR → levelup-specify CDR capture back to the team repo → team-repair --build-to-delete rule pruning. "The Basic Workflow" is an 8-step numbered list with bolded skill names and a closing "skills trigger automatically — mandatory lifecycle, not suggestions" line. Modeled on the superpowers README's "How it works" / "Basic Workflow" structure. Tone matches the existing technical README; the collapsible Workflows <details> block and Reference table are unchanged (they hold the detailed per-lifecycle chains; the new sections are the high-level summary). Documentation-only; PATCH bump per RELEASE.md.

adlc-team-skills v0.26.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 05:45
d80c969

Added

  • change-* skill family — Change Decision Records from git history (skills/change/change-{init,clarify,publish}/): a new record type (ChDR) that mines the why behind how code came to be, recovered from commit messages + linked issue trackers rather than from current code patterns or the current session. change-init scans a git log window, auto-detects issue links (JIRA keys, GitHub/GitLab #NNN, MR !NNN, issue URLs), clusters commits by issue key into change stories, best-effort fetches issue context (GitLab via MCP, GitHub via gh, else link-only), and treats revert/fix chains as first-class negative knowledge. change-clarify is the human gate (one-ChDR-at-a-time Accept/Reject/Defer) with a provenance check that rejects Decision claims lacking a cited commit SHA or issue URL (the context-poisoning circuit breaker). change-publish promotes accepted ChDRs to .adlc/memory/chdr/ and regenerates the boot-facing .adlc/memory/chdr.md index. Every Decision claim carries mandatory provenance; linkage-rate metric in the summary sets expectations about corpus quality (research: rationale density varies 85–99% on disciplined projects, far lower elsewhere). ChDRs publish to project-local memory, not team-ai-directives (they describe this repo's evolution and fail the levelup team-wide signal gate). Empirical foundation: CoMRAT (MSR 2025), DRMiner (ASE 2024), LaToza et al. (ICSE 2006), Ko et al. (ICSE 2007).

  • team-boot injects the ChDR index at session start (skills/team/team-boot/scripts/boot.sh, boot.ps1, SKILL.md): alongside the existing PDR/ADR indexes, team-boot now reads .adlc/memory/chdr.md and emits a ## ChDR Index section with CHDR_COUNT, so published Change Decision Records are available to every session. The counts line is extended to _Searched N CDR, P PDR, A ADR, C ChDR entries, S skills, J matched._. team-discover updated to include ChDR matches.

  • Eval coverage for the change family (evals/promptfoo/graders/check_chdr_format.py, evals/promptfoo/tests/test_check_chdr_format.py, evals/promptfoo/goldset.md): new goldset criterion (EVAL-006) and binary grader asserting ChDR drafts contain required sections (Context/Decision/Consequences/Evidence), at least one commit SHA, an issue link or explicit "no linked issue" marker, and provenance on Decision claims. Follows CONTRIBUTING's "new skills ship with eval coverage" requirement.

  • levelup-init / levelup-specify "When NOT to use" (skills/levelup/levelup-{init,specify}/SKILL.md): added a pointer to /change-init for mining git history / issue-linked changes, keeping discovery-source routing unambiguous.

adlc-team-skills v0.25.1

Choose a tag to compare

@github-actions github-actions released this 09 Aug 12:56
02215d8

Fixed

  • Node.js 20 runtime deprecation in GitHub Actions (.github/workflows/*.yml): upgraded actions/checkout@v4 → @v6, actions/setup-python@v5 → @v6, and softprops/action-gh-release@v2 → @v3 so all workflows run natively on the Node 24 runtime instead of being forced onto it (removes the "Node.js 20 is deprecated" warning; GitHub deprecated Node 20 on 2025-09-19).

  • Auto-Tag Release workflow fails on git tag -a — "empty ident name not allowed" (.github/workflows/auto-tag.yml): the workflow created annotated tags (git tag -a) but GitHub-hosted runners have no git identity configured by default, so the tag push step died with fatal: empty ident name and no release was created. Fixed by configuring user.name/user.email (github-actions[bot] identity) before creating tags.

adlc-team-skills v0.25.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 12:56
02215d8

Added

  • Auto-tag release on PR merge (.github/workflows/auto-tag.yml, RELEASE.md): new GitHub Actions workflow that runs on every push to main, parses the ## [X.Y.Z] headers from CHANGELOG.md, and creates annotated adlc-team-skills-v* tags for every new untagged version at the merge commit. Each pushed tag then triggers the existing Release workflow, which creates the GitHub release — no manual tagging needed after a PR merges. Multi-version merge commits get one tag per new CHANGELOG version. The workflow carries contents: write but only runs on push to main (never on pull_request), so the elevated token is never exposed to untrusted PR code; test.yml remains contents: read. Versions older than the latest existing tag are deliberately skipped (historical gaps like 0.1.0 must still be tagged manually at their original commit).