How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/tikalk/adlc-team-skills --skill factory-learnBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
factory-learn
What this skill does
factory-learn orchestrates the continuous improvement learning loop of the software factory. It coordinates individual learning-related skills (team-init, team-levelup, change-init, change-clarify, change-publish, team-repair, evals-analyze) to transition draft directives into verified, published, and minimal team context assets.
It operates as a Kind-A DAG orchestrator in alignment with the shared executor engine contract in factory-mission/references/executor.md.
When to use
- You want to extract and compile hard-won session learnings into your team's centralized
team-ai-directivesrepository. - You want to mine git commit history to capture the rationale (ChDRs) behind past reverts and hotfixes.
- You want to run "Build to Delete" (Harness Decay checks) to prune redundant rules.
When NOT to use:
- For product-level specification or development (use
factory-productorfactory-missioninstead). - If the team directives repository is completely unconfigured (run
/team-setupfirst).
Lifecycle DAG & Step Resolution
factory-learn implements a fixed named-skill DAG (fixed step resolution):
Session Learnings Route (default on session-end)
- `specify` (
generatephase) -> Invoketeam-levelupto extract candidate Context Directive Records (CDRs) and compliances from the active session. - `clarify`⭐ (
clarifyphase) -> Invoketeam-levelupto review pending CDRs. Enforces the evals-regression gate (running the compliance goldset as theverifysub-phase to ensure no quality degradation). - `publish` (
buildphase) -> Invoketeam-levelupto package accepted CDRs, index them, and compile a draft PR targeting theteam-ai-directivesrepository. - `prune` (
analyzephase) -> Runs the cleanup bot over the directive store to detect and propose deprecations of superseded, contradictory, or stale rules. Deprecations feed back toteam-levelup.
Historical Mining Route (brownfield)
- `init` (
generatephase) -> Invokechange-initto mine git history and issue trackers for Change Decision Records (ChDRs). - `clarify`⭐ (
clarifyphase) -> Invokechange-clarifyto run interactive provenance reviews on mined claims. - `publish` (
buildphase) -> Invokechange-publishto promote accepted ChDRs intodocs/adlc/memory/chdr/and regenerate indices.
Maintenance & Build-to-Delete Route (periodic)
- `verify` (
verifyphase) -> Runteam-repair --build-to-delete. Re-runs goldset evals with rules temporarily disabled. Two questions per rule:
- Build-to-delete: if the model passes without the rule, the rule is flagged as redundant.
- Promote-to-check (deterministic-checks-first, EVAL-010): if a deterministic check (unit test / binary grader / pre-commit hook / lint rule / CI job) can mechanically enforce the rule, flag it as a promotion candidate — pay once for the check instead of re-injecting a fuzzy rule into every session.
- `clarify`⭐ -> Proposes the redundant rule's deprecation and the mechanical rule's promotion to
team-levelupfor human review. Promotions route to action P — Promote to check (team-levelup Phase 2b); once the check exists and runs in CI, the CDR is deprecated or reduced to a thin pointer. Both proposals publish asfindings.
Workflow Retrospective Route
Runs periodically or on-demand to analyze past runs of other factory skills (e.g. factory-mission, factory-product) and generate workflow memories:
- `analyze` (
analyzephase) -> Scan completed/failed runs' shared state (.adlc/workflows/runs/<run_id>/state.jsonviaadlc-cli workflow status) and evidence files. Identify patterns, recurring errors, or successful corrections.
- Also sweep
.adlc/drafts/{adr,pdr,chdr,cdr,evals}/for unclarified entries (frontmatter/heading status proposed/discovered/draft); surface each as a finding (Draft ID + type + age), independent of whether sessionend/fileedited hooks ever fired.
- `clarify`⭐ -> Present proposed memories (active vs tentative) to the user (in gated/hybrid modes) or auto-approve (in autonomous mode).
- `publish` (
buildphase) -> Write approved memories to.adlc/workflows/memory.jsonl(workspace-global). Memories carry weights and use counts; stale or counter-productive memories are automatically archived.
Shared Executor Overrides
factory-learn overrides the shared executor engine primitives as follows:
- Publish Target: Fixed to
external-repo. Opens or updates a draft pull request on the configuredteam-ai-directivesrepository. Since the publish target is a PR on the directives repo, the comment bus operates on that PR — step outputs (decisions, findings) are published as marker comments on the directives PR. - Output Types: Steps use the following
output_typeassignments:
specify/init→draft(CDR/ChDR drafts stay in.adlc/drafts/, not published to comment bus)clarify⭐ →decision(accepted/rejected CDR/ChDR list published to comment bus on the directives PR)publish→artifact-ref(PR URL reference published, content stays on disk)prune/verify→findings(redundancy/deprecation report published to comment bus)
- Feedback Loop Ingestion: Automatically consumes the output of
evals-analyze(when an application test fails due to specification issues,evals-analyzeautomatically routes toteam-levelup, which triggers this orchestrator). - Supervision Default:
hybrid. Human gates are hard-enforced atclarify⭐ (approval of CDR/ChDR entries) and at final PR creation. - Pre-flight Check: Verifies that
team-levelup,change-*, andteam-*skills are installed, and that the directives repo path is set in.adlc/init-options.json.



