plugins/src/base/skills/tracker-build-intake/SKILL.md
Vendor-neutral wrapper for the build-queue scanner. Reads `tracker` from .lisa.config.json (default: jira) and dispatches to lisa:jira-build-intake (JQL/project-key queue), lisa:github-build-intake (GitHub repo queue keyed off the `status:ready` label), or lisa:linear-build-intake (Linear team queue keyed off the `status:ready` label). Every vendor scanner processes at most one eligible item per cycle and enforces the claim-time arm of the `leaf-only-lifecycle` rule — dispatch leaf work units only; move or safe-block a container with open child work (or a childless Epic/Story/Spike) that carries a stale build-ready role according to the vendor's lifecycle semantics. Counterpart to lisa:intake's PRD-side dispatchers.
npx skillsauth add codyswanngt/lisa tracker-build-intakeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Thin dispatcher. Resolves the configured destination tracker and delegates to the matching vendor build-queue scanner.
See the config-resolution rule for configuration and dispatch table.
The vendor scanners also own the terminal native-closure step from leaf-only-lifecycle: after a leaf reaches the true terminal done value, they close / resolve / complete the native tracker item where supported, while leaving intermediate env states open.
lisa:tracker-write).jira → invoke lisa:jira-build-intake with $ARGUMENTS verbatim. Arg shape: a JIRA project key (e.g., SE) or a JQL filter.github → invoke lisa:github-build-intake with $ARGUMENTS verbatim. Arg shape: a GitHub org/repo token or a full GitHub repo URL.linear → invoke lisa:linear-build-intake with $ARGUMENTS verbatim. Arg shape: a Linear team key (e.g., ENG) or the literal token linear (which falls back to linear.teamKey)."Unknown tracker '<value>' in .lisa.config.json. Expected 'jira', 'github', or 'linear'."This shim is dispatch only — it does not reclassify or re-gate items — but the contract it forwards is part of the build-intake API, so it is documented here once and the three vendor scanners implement it identically. Per the vendor-neutral leaf-only-lifecycle rule, build intake claims only independently implementable leaf work units:
status:ready with status:in-progress and posting an idempotent lifecycle-repair comment; other vendor scanners skip or safe-block according to their native lifecycle semantics.This is the claim-time arm of the rule. Its siblings are the write-time labeling (lisa:tracker-write → the vendor *-write-* skills apply build-ready to leaves only) and the validate-time S15 gate (lisa:tracker-validate → the vendor *-validate-* skills FAIL a build-ready container). All three arms cite leaf-only-lifecycle so no vendor drifts. Each vendor scanner implements the gate against its own hierarchy:
| Tracker | Vendor scanner | Hierarchy used to detect open child work |
|---|---|---|
| github | lisa:github-build-intake (Phase 3a) | native sub-issues (GraphQL) + body parentage |
| jira | lisa:jira-build-intake (Phase 3a) | native Epic → Story → Sub-task parentage |
| linear | lisa:linear-build-intake (Phase 3a) | native sub-issues via parentId + Project grouping |
The shim never needs to inspect the item itself — it forwards $ARGUMENTS verbatim and the resolved vendor scanner runs its Phase 3a gate before any claim.
Equally part of the build-intake API, and forwarded identically: when the tracker oversees multiple repos, each vendor scanner claims only tickets for the repo it is running in. Per the repo-scope-split rule's "Claim-time repo scoping" section, before the leaf-only gate each scanner (Phase 3a.0) resolves the current repo (config-resolution "Repo scoping": repo → github.repo → git remote basename), then for each ready candidate: skips a ticket labeled repo:<other>, determines + stamps repo:<name> on an unlabeled one, splits a multi-repo leaf into single-repo build-ready siblings, and claims only a single-repo leaf for the current repo. This shim does not re-implement the gate — it relies on the vendor scanner's Phase 3a.0 — but the contract is uniform across jira, github, and linear so behavior never drifts by tracker. It is the claim-time complement to the write-time S10 scope gate (lisa:tracker-validate) and task-decomposition step 1.5; all cite repo-scope-split.
This shim also forwards the leaf-only-lifecycle terminal native-closure contract. It does not decide whether a done value is terminal; the vendor scanner resolves that from its own config and deployment topology after the per-item agent succeeds.
| Tracker | Vendor scanner behavior at true terminal done |
|---|---|
| github | apply the terminal done label, then gh issue close --reason completed |
| jira | transition to the configured terminal status and verify native resolved / closed state |
| linear | apply the terminal done label, then move the Issue to the configured completed workflow state |
Intermediate env states are not native closure. A vendor scanner that resolves On Dev, On Stg, status:on-dev, status:on-stg, or a configured equivalent leaves the item open / unresolved.
Ready item and exits. Scheduler repetition works the rest of the queue.leaf-only-lifecycle rule, each vendor scanner dispatches leaf work units only and moves or safe-blocks a container (open child work, or a childless Epic/Story/Spike) carrying a stale build-ready role according to its lifecycle semantics. This shim does not re-implement the gate — it relies on the vendor scanner's Phase 3a — but the contract is uniform across jira, github, and linear so behavior never drifts by tracker.done value. This shim never performs native closure itself, but callers can rely on the dispatched vendor scanner to apply the contract.documentation
Onboard a user to the project via its LLM Wiki. Interviews the user about themselves in relation to the project, captures that to project-scoped memory only, then gives a guided tour of what the project is and sample questions they can ask. Use when someone is new to the project or asks to be onboarded. Read-mostly — it does not open PRs or write PII into the wiki.
documentation
Migrate an existing, hand-rolled wiki implementation onto the lisa-wiki kernel — phased and compatibility-first, with a strict no-loss guarantee. Use when adopting lisa-wiki in a repo that already has its own wiki/, ingest skills, docs, or roles. Renaming things into the canonical shape is fine; losing functionality or data is not. Ends by running /doctor.
development
Health-check the LLM Wiki. Reports orphan pages, contradictions, stale claims, broken internal links, missing index/log coverage, structure-manifest violations, and secret/tenant leaks. Use periodically or before hardening a wiki. Read-only — it reports findings, it does not fix them.
testing
Ingest source material into the LLM Wiki. With an argument (URL, file path, or prompt) it ingests that one source; with no argument it runs a full ingest across every enabled non-external-write source. Routes to the right connector, then runs the ordered pipeline (source note → synthesis → index → log → verify → state → commit/PR). Use whenever new knowledge should enter the wiki.