From 86e35c07fe30b52106405928c041dc7e20c82527 Mon Sep 17 00:00:00 2001 From: rldyourmnd Date: Sat, 22 Aug 2026 04:00:10 +0500 Subject: [PATCH] feat(skills): add Drakkars CI operations profile --- .../gds-ci-performance-verify/SKILL.md | 49 + .../agents/openai.yaml | 4 + .../gds-ci-workflows-design/SKILL.md | 50 + .../agents/openai.yaml | 4 + .../gds-drakkars-audit-fleet/SKILL.md | 54 + .../agents/openai.yaml | 4 + .../gds-drakkars-audit-workflow/SKILL.md | 49 + .../agents/openai.yaml | 4 + .../gds-drakkars-onboard-project/SKILL.md | 51 + .../agents/openai.yaml | 6 + .../gds-drakkars-optimize-workflow/SKILL.md | 57 + .../agents/openai.yaml | 6 + skills/canonical/gds-drakkars-orient/SKILL.md | 49 + .../gds-drakkars-orient/agents/openai.yaml | 4 + .../gds-drakkars-rollout-consumer/SKILL.md | 52 + .../agents/openai.yaml | 6 + .../gds-drakkars-triage-run/SKILL.md | 49 + .../agents/openai.yaml | 4 + skills/evals/output/drakkars.json | 376 +++++ skills/evals/trigger/drakkars.json | 1294 +++++++++++++++++ skills/registry.yaml | 99 ++ 21 files changed, 2271 insertions(+) create mode 100644 skills/canonical/gds-ci-performance-verify/SKILL.md create mode 100644 skills/canonical/gds-ci-performance-verify/agents/openai.yaml create mode 100644 skills/canonical/gds-ci-workflows-design/SKILL.md create mode 100644 skills/canonical/gds-ci-workflows-design/agents/openai.yaml create mode 100644 skills/canonical/gds-drakkars-audit-fleet/SKILL.md create mode 100644 skills/canonical/gds-drakkars-audit-fleet/agents/openai.yaml create mode 100644 skills/canonical/gds-drakkars-audit-workflow/SKILL.md create mode 100644 skills/canonical/gds-drakkars-audit-workflow/agents/openai.yaml create mode 100644 skills/canonical/gds-drakkars-onboard-project/SKILL.md create mode 100644 skills/canonical/gds-drakkars-onboard-project/agents/openai.yaml create mode 100644 skills/canonical/gds-drakkars-optimize-workflow/SKILL.md create mode 100644 skills/canonical/gds-drakkars-optimize-workflow/agents/openai.yaml create mode 100644 skills/canonical/gds-drakkars-orient/SKILL.md create mode 100644 skills/canonical/gds-drakkars-orient/agents/openai.yaml create mode 100644 skills/canonical/gds-drakkars-rollout-consumer/SKILL.md create mode 100644 skills/canonical/gds-drakkars-rollout-consumer/agents/openai.yaml create mode 100644 skills/canonical/gds-drakkars-triage-run/SKILL.md create mode 100644 skills/canonical/gds-drakkars-triage-run/agents/openai.yaml create mode 100644 skills/evals/output/drakkars.json create mode 100644 skills/evals/trigger/drakkars.json diff --git a/skills/canonical/gds-ci-performance-verify/SKILL.md b/skills/canonical/gds-ci-performance-verify/SKILL.md new file mode 100644 index 0000000..c18710e --- /dev/null +++ b/skills/canonical/gds-ci-performance-verify/SKILL.md @@ -0,0 +1,49 @@ +--- +name: gds-ci-performance-verify +description: Use this skill when the owner asks whether a CI or fleet change actually improved speed or reliability. Compare equivalent runs using end-to-end, queue, provisioning, setup, execution, and deploy timing plus failures and retries. Do not use it to tune, rerun, cancel, or deploy. +--- + +# Contract + +Verify performance with comparable evidence rather than isolated job duration. + +## Use when + +- A change has before and after evidence that needs performance verification. + +## Do not use when + +- The request is implementation, current-health audit without baseline, or diagnosis of one run. + +## Inputs + +- Change identity, before and after windows, repositories, workflows, priorities, and success criteria. + +## Preconditions + +1. Define the user-visible interval and verify clocks, correlation, and cohort usability. + +## Workflow + +1. Define the user-visible interval, normally PR-ready to all required checks and deployment complete. +2. Select before/after cohorts matched by repository, workflow, event, change size, cache state, platform, and priority. +3. Decompose median, p90, and p95 latency into queue, provision, setup, execute, upload/deploy, and teardown stages. +4. Compare throughput, utilization, success, retry, infrastructure-failure, flaky-failure, and missing-telemetry rates. +5. Identify critical-path changes and resource contention; keep priority classes separate. +6. Reject conclusions with insufficient samples or incomparable cohorts and label them `NOT_PROVEN`. + +## Output + +Return cohort definition, metric table, confidence limits or evidence limits, regressions, improvements, reliability impact, and the next measurement needed. + +## Stop conditions + +Stop before rerunning work, changing configuration, or claiming causality from unmatched evidence. + +## Verification + +Recompute cohort membership and metrics from authoritative events and state sample and confidence limitations. + +## References + +Use current GitHub run events and correlated private fleet observability evidence. diff --git a/skills/canonical/gds-ci-performance-verify/agents/openai.yaml b/skills/canonical/gds-ci-performance-verify/agents/openai.yaml new file mode 100644 index 0000000..5e8ac06 --- /dev/null +++ b/skills/canonical/gds-ci-performance-verify/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "CI Performance Verify" + short_description: "Verify CI speed with comparable evidence" + default_prompt: "Use $gds-ci-performance-verify to compare CI latency and reliability evidence." diff --git a/skills/canonical/gds-ci-workflows-design/SKILL.md b/skills/canonical/gds-ci-workflows-design/SKILL.md new file mode 100644 index 0000000..a2b16c2 --- /dev/null +++ b/skills/canonical/gds-ci-workflows-design/SKILL.md @@ -0,0 +1,50 @@ +--- +name: gds-ci-workflows-design +description: Use this skill when the owner wants a complete reusable CI/CD design for a project or ecosystem. Define coverage, job boundaries, dependencies, inputs, permissions, runner portability, technology setup, telemetry, and failure behavior. Do not use it to edit workflows, deploy runners, or onboard consumers. +--- + +# Contract + +Design reusable CI that is complete, fast, explainable, and portable. + +## Use when + +- The owner needs a new or revised reusable CI architecture before implementation. + +## Do not use when + +- The request is to edit workflows, operate the fleet, onboard a project, or measure performance. + +## Inputs + +- Ecosystems, validation and release obligations, platforms, security policy, and consumer constraints. + +## Preconditions + +1. Inventory authoritative manifests, lockfiles, release processes, and policy; mark missing facts `NOT_PROVEN`. + +## Workflow + +1. Inventory validation obligations from source, manifests, lockfiles, release process, security policy, and supported platforms. +2. Group obligations into small jobs with explicit inputs, outputs, permissions, timeouts, and artifacts. +3. Express the minimum dependency DAG that preserves correctness; parallelize all independent jobs. +4. Specify deterministic, lockfile-aware setup for each detected ecosystem and version source. +5. Keep portable behavior and synthetic examples public. Expose runner selection as a consumer input; keep private identities and priorities in estate configuration. +6. Define logs, summaries, correlation fields, failure artifacts, retry classification, cache behavior, and observability degradation behavior. +7. Define hosted/public and private-fleet acceptance fixtures plus compatibility and security tests. + +## Output + +Return the coverage matrix, DAG, reusable interfaces, runner contract, security model, telemetry contract, acceptance tests, and rollout order. + +## Stop conditions + +Stop before repository edits, workflow dispatch, ruleset changes, or invented technology requirements. + +## Verification + +Every obligation has a job, every dependency is necessary, and no private identity occurs in portable design. + +## References + +Use current public reusable workflow contracts and synthetic public fixtures. diff --git a/skills/canonical/gds-ci-workflows-design/agents/openai.yaml b/skills/canonical/gds-ci-workflows-design/agents/openai.yaml new file mode 100644 index 0000000..4af8d70 --- /dev/null +++ b/skills/canonical/gds-ci-workflows-design/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "CI Workflows Design" + short_description: "Design complete reusable CI behavior" + default_prompt: "Use $gds-ci-workflows-design to design complete reusable CI for a project." diff --git a/skills/canonical/gds-drakkars-audit-fleet/SKILL.md b/skills/canonical/gds-drakkars-audit-fleet/SKILL.md new file mode 100644 index 0000000..913497a --- /dev/null +++ b/skills/canonical/gds-drakkars-audit-fleet/SKILL.md @@ -0,0 +1,54 @@ +--- +name: gds-drakkars-audit-fleet +description: Use this skill for a read-only audit of CI fleet health, queue latency, capacity, runner availability, tool compatibility, retries, logs, telemetry, or failure history. Correlate evidence across control plane, GitHub, runners, and observability. Do not use it to deploy, restart, cancel, rerun, resize, or edit configuration. +--- + +# Contract + +Explain fleet health and bottlenecks from correlated, time-bounded evidence. + +## Use when + +- The owner needs fleet-wide capacity, queue, compatibility, log, or telemetry evidence. + +## Do not use when + +- The scope is one run, one workflow, or an explicitly requested mutation. + +## Inputs + +- Audit window, fleet context, priority or pool filters, and technology scope. + +## Preconditions + +1. Resolve GDS context and the private estate source without copying private facts into public artifacts. + +## Workflow + +1. Resolve GDS context and the private estate source without copying its facts into public outputs. +2. Establish the audit window and inventory expected pools, capacity, priority, and technologies. +3. Correlate GitHub queue/start/end events with scheduler, provider, host, runner, and telemetry records using stable run, job, intent, and instance identifiers. +4. Measure end-to-end latency, queue time, provisioning, setup, execution, teardown, utilization, failure, retry, and orphan rates by pool and priority. +5. Check support for every detected toolchain and package manager; classify unsupported-tool failures separately from project defects. +6. Check log completeness, redaction, retention, clock alignment, and missing correlation fields. +7. Separate confirmed faults, saturation, waste, and `NOT_PROVEN` gaps. + +## Safety + +Never expose private topology or tenant identifiers in a public artifact. Never treat a retry as proof that the cause disappeared. + +## Output + +Return prioritized findings, evidence, latency decomposition, compatibility gaps, capacity risks, and non-mutating remediation options. + +## Stop conditions + +Stop before restart, retry, cancellation, deployment, resize, or configuration write. + +## Verification + +Cross-check GitHub, runtime journals, provider inventory, hosts, and observability freshness; mark gaps `NOT_PROVEN`. + +## References + +Use current structured GDS, GitHub, provider, host, and observability evidence. diff --git a/skills/canonical/gds-drakkars-audit-fleet/agents/openai.yaml b/skills/canonical/gds-drakkars-audit-fleet/agents/openai.yaml new file mode 100644 index 0000000..9635ff9 --- /dev/null +++ b/skills/canonical/gds-drakkars-audit-fleet/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Drakkars Audit Fleet" + short_description: "Audit fleet health, capacity, and compatibility" + default_prompt: "Use $gds-drakkars-audit-fleet for a read-only evidence-backed fleet audit." diff --git a/skills/canonical/gds-drakkars-audit-workflow/SKILL.md b/skills/canonical/gds-drakkars-audit-workflow/SKILL.md new file mode 100644 index 0000000..fc9827a --- /dev/null +++ b/skills/canonical/gds-drakkars-audit-workflow/SKILL.md @@ -0,0 +1,49 @@ +--- +name: gds-drakkars-audit-workflow +description: Use this skill for a read-only review of GitHub Actions coverage, dependencies, parallelism, runner selection, permissions, caching, reproducibility, observability, and latency. Check that public and private repositories use the correct runner authority. Do not use it to edit workflows or change GitHub settings. +--- + +# Contract + +Audit one project's CI/CD behavior without reducing verification scope or mutating state. + +## Use when + +- One repository's workflows need a correctness, coverage, safety, or performance audit. + +## Do not use when + +- The owner asks to implement changes, audit fleet runtime, or trace only one run. + +## Inputs + +- Repository path, workflow scope, required checks, and supported release targets. + +## Preconditions + +1. Resolve repository visibility, instructions, and required-check authority. + +## Workflow + +1. Inventory workflows, triggers, required checks, reusable calls, matrices, environments, artifacts, caches, and deployment gates. +2. Map project languages, package managers, generated assets, security obligations, builds, tests, and release paths to actual jobs. +3. Verify public Linux jobs use GitHub-hosted resources and private Linux jobs use the declared private fleet; keep macOS and Windows hosted unless private capacity is explicitly declared. +4. Build the dependency graph and critical path. Find accidental serialization, duplicated setup, oversized matrices, unsafe cache keys, and missing cancellation semantics. +5. Verify least-privilege permissions, pinning, secret isolation, fork safety, timeouts, concurrency, retry ownership, logs, telemetry, and artifact retention. +6. Report missing coverage separately from speed opportunities. + +## Output + +Return coverage gaps, correctness risks, critical-path evidence, safe parallelization opportunities, and an ordered change plan. + +## Stop conditions + +Stop before editing YAML, changing rulesets, dispatching workflows, or changing runners. + +## Verification + +Prove each finding from workflow source, manifests, policy, and required-check state. + +## References + +Use current workflow source, repository manifests, public reusable contracts, and private estate policy. diff --git a/skills/canonical/gds-drakkars-audit-workflow/agents/openai.yaml b/skills/canonical/gds-drakkars-audit-workflow/agents/openai.yaml new file mode 100644 index 0000000..8515bbc --- /dev/null +++ b/skills/canonical/gds-drakkars-audit-workflow/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Drakkars Audit Workflow" + short_description: "Audit CI coverage, safety, and parallelism" + default_prompt: "Use $gds-drakkars-audit-workflow for a read-only workflow audit." diff --git a/skills/canonical/gds-drakkars-onboard-project/SKILL.md b/skills/canonical/gds-drakkars-onboard-project/SKILL.md new file mode 100644 index 0000000..0c42285 --- /dev/null +++ b/skills/canonical/gds-drakkars-onboard-project/SKILL.md @@ -0,0 +1,51 @@ +--- +name: gds-drakkars-onboard-project +description: Use this skill only when the owner explicitly asks to connect one repository to Drakkars and the reusable CI system. Inventory its technologies, classify visibility, add the correct runner policy and complete checks, canary them, and record estate evidence. Do not use it for multi-repository migration or interrupting existing runs. +disable-model-invocation: true +--- + +# Contract + +Onboard one project with complete CI coverage and no unsupported-tool surprises. + +## Use when + +- The owner explicitly approves end-to-end CI onboarding for one repository. + +## Do not use when + +- The repository only needs audit or optimization, or scope spans multiple consumers. + +## Inputs + +- Repository identity, visibility, required checks, release targets, and approved estate selector. + +## Preconditions + +1. Resolve every Git boundary and prove visibility before choosing runners or writing configuration. + +## Workflow + +1. Resolve repository identity, visibility, policy, required checks, and independent Git boundaries. +2. Detect languages, runtimes, package managers, lockfiles, services, containers, build tools, release targets, and architecture needs from source evidence. +3. Select public reusable workflow capabilities and keep private repository/priority/runner mappings in the estate overlay. +4. Add deterministic setup, validation, logs, telemetry, timeouts, fork safety, and artifacts for failures. +5. Validate workflow syntax and policy locally. +6. Roll out one non-destructive canary while existing labels and jobs remain available. +7. Promote only after required checks and telemetry are complete; journal the exact commits and runtime evidence. + +## Stop conditions + +Stop on missing credentials, unknown visibility, unsupported required technology, or a canary regression. Never terminate an existing run to make room. + +## Output + +Return inventory, runner mapping, coverage map, canary result, evidence locations, rollback path, and remaining gaps. + +## Verification + +Prove technology coverage, visibility-to-runner mapping, green canary, unchanged active jobs, and rollback evidence. + +## References + +Use source manifests and lockfiles, public reusable contracts, private estate policy, GitHub checks, and runtime telemetry. diff --git a/skills/canonical/gds-drakkars-onboard-project/agents/openai.yaml b/skills/canonical/gds-drakkars-onboard-project/agents/openai.yaml new file mode 100644 index 0000000..d788689 --- /dev/null +++ b/skills/canonical/gds-drakkars-onboard-project/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Drakkars Onboard Project" + short_description: "Connect one project to its correct CI runners" + default_prompt: "Use $gds-drakkars-onboard-project to onboard one approved project to Drakkars." +policy: + allow_implicit_invocation: false diff --git a/skills/canonical/gds-drakkars-optimize-workflow/SKILL.md b/skills/canonical/gds-drakkars-optimize-workflow/SKILL.md new file mode 100644 index 0000000..92b5e21 --- /dev/null +++ b/skills/canonical/gds-drakkars-optimize-workflow/SKILL.md @@ -0,0 +1,57 @@ +--- +name: gds-drakkars-optimize-workflow +description: Use this skill only when the owner explicitly asks to change a project's GitHub Actions for lower end-to-end latency while preserving or increasing coverage, stability, logs, and telemetry. Implement within one repository, verify locally, and prepare measured rollout evidence. Do not use it for fleet infrastructure changes or job cancellation. +disable-model-invocation: true +--- + +# Contract + +Optimize the full PR-to-deploy critical path without weakening required checks. + +## Use when + +- The owner explicitly requests an approved workflow optimization in one repository. + +## Do not use when + +- The request is audit-only, fleet/provider work, multi-consumer rollout, or would reduce coverage. + +## Inputs + +- Repository, approved scope, required checks, supported technologies, and baseline evidence. + +## Preconditions + +- Resolve GDS context and inspect repository instructions. +- Record a comparable baseline or mark it `NOT_PROVEN`. +- Preserve unrelated work and existing required-check identities unless migration is planned. + +## Workflow + +1. Derive the job DAG and locate the measured critical path. +2. Parallelize independent work; keep true dependencies explicit with `needs`. +3. Move reusable behavior to the pinned public CI workflow module when portable. +4. Select runners by visibility: public Linux hosted; private Linux private fleet; macOS/Windows hosted unless estate policy says otherwise. +5. Make setup deterministic for every detected ecosystem, including lockfile-aware caches and supported package managers. +6. Add bounded timeouts, useful summaries, correlation data, artifacts on failure, and safe retry classification. +7. Run syntax, policy, security, and project validations before any external write. + +## Invariants + +Do not skip tests to gain speed. Do not cancel active jobs. Do not put private facts in public reusable workflows. + +## Output + +Return changed files, preserved coverage, validation results, expected latency effect, and remaining measurement gaps. + +## Stop conditions + +Stop on lost coverage, unknown check identity, unsupported technology, unsafe cache or secret behavior, or unrelated dirty-state overlap. + +## Verification + +Show obligation-to-job coverage, validators, workflow policy checks, and a measurable latency hypothesis. + +## References + +Use current repository instructions, public reusable workflow contracts, and private runner policy. diff --git a/skills/canonical/gds-drakkars-optimize-workflow/agents/openai.yaml b/skills/canonical/gds-drakkars-optimize-workflow/agents/openai.yaml new file mode 100644 index 0000000..fb7e621 --- /dev/null +++ b/skills/canonical/gds-drakkars-optimize-workflow/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Drakkars Optimize Workflow" + short_description: "Optimize CI latency without reducing coverage" + default_prompt: "Use $gds-drakkars-optimize-workflow to implement an approved workflow optimization." +policy: + allow_implicit_invocation: false diff --git a/skills/canonical/gds-drakkars-orient/SKILL.md b/skills/canonical/gds-drakkars-orient/SKILL.md new file mode 100644 index 0000000..b47fa35 --- /dev/null +++ b/skills/canonical/gds-drakkars-orient/SKILL.md @@ -0,0 +1,49 @@ +--- +name: gds-drakkars-orient +description: Use this skill when the owner asks where CI or Drakkars behavior is owned, which runner policy applies, or how public product code and private estate facts are separated. Resolve verified context without changing anything. Do not use it for a deep audit, optimization, rollout, or provider write. +--- + +# Contract + +Resolve the current CI/fleet context and its authority boundaries without mutation. + +## Use when + +- The owner asks which CI or fleet authority, visibility rule, or Git boundary applies. + +## Do not use when + +- The request needs a deep audit, run trace, implementation, onboarding, or rollout. + +## Inputs + +- Repository path or stable identity and the owner's context question. + +## Preconditions + +1. Work from the relevant Git boundary and keep remote facts `NOT_PROVEN` until refreshed. + +## Workflow + +1. Run `gds context --json` at the relevant Git boundary. +2. Identify repository visibility, active profiles, module pins, and canonical owner. +3. Treat portable engines, reusable workflows, schemas, and generic skills as public product concerns. +4. Treat organizations, repository identities, priorities, hosts, networks, credentials, and runtime evidence as private estate concerns. +5. Mark unfetched provider or telemetry facts `NOT_PROVEN`. +6. Recommend the narrowest next skill and Git boundary. + +## Stop conditions + +Stop before edits, fetch-based conclusions, workflow dispatch, runner changes, or provider writes. + +## Output + +Return verified context, independent mutation boundaries, visibility constraints, evidence gaps, and the safe next workflow. + +## Verification + +Every stated fact names its verified source and public output contains no private topology or tenant detail. + +## References + +Use current structured `gds context --json` output and the active repository policy. diff --git a/skills/canonical/gds-drakkars-orient/agents/openai.yaml b/skills/canonical/gds-drakkars-orient/agents/openai.yaml new file mode 100644 index 0000000..f727a24 --- /dev/null +++ b/skills/canonical/gds-drakkars-orient/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Drakkars Orient" + short_description: "Resolve CI fleet authority and safe workflow" + default_prompt: "Use $gds-drakkars-orient to resolve the verified CI and fleet context." diff --git a/skills/canonical/gds-drakkars-rollout-consumer/SKILL.md b/skills/canonical/gds-drakkars-rollout-consumer/SKILL.md new file mode 100644 index 0000000..9bc5292 --- /dev/null +++ b/skills/canonical/gds-drakkars-rollout-consumer/SKILL.md @@ -0,0 +1,52 @@ +--- +name: gds-drakkars-rollout-consumer +description: Use this skill only for an explicitly approved rollout of a fleet label, public workflow version, or runner behavior to selected consumers. Use phased coexistence, canaries, drain evidence, rollback checkpoints, and exact commit pins. Do not use it when active jobs would be cancelled or old capacity removed early. +disable-model-invocation: true +--- + +# Contract + +Change consumers without losing work or creating an unserviceable label window. + +## Use when + +- The owner explicitly approves selected consumers moving to a verified product or fleet contract. + +## Do not use when + +- The product is unverified, work is design-only, or coexistence and rollback are unavailable. + +## Inputs + +- Exact source and target identities, consumers, waves, gates, and rollback target. + +## Preconditions + +1. Capture current GitHub, estate, provider, runtime, and Git state and verify public hosted checks. + +## Workflow + +1. Resolve every affected Git and provider boundary and capture current exact state. +2. Verify the public product commit with hosted checks, then pin it in the private estate. +3. Create new capacity disabled; validate identity, image, labels, limits, and compatibility. +4. Enable the new path and run representative canaries before changing consumers. +5. Move consumers in bounded waves while old and new paths coexist. +6. Observe queue, failures, retries, provisioning, teardown, and end-to-end latency after each wave. +7. Disable the old path only when its queued and running intent count is zero. Remove it only after a further verified drain window. +8. Record immutable evidence and preserve a tested rollback checkpoint. + +## Stop conditions + +Stop on active old-path jobs, missing telemetry, canary regression, configuration mismatch, or rollback uncertainty. + +## Output + +Return phase, exact identities, canary evidence, drain proof, rollback path, and next safe action. + +## Verification + +Prove exact identities, green canaries, no lost jobs, zero-active drain, immutable evidence, and rollback. + +## References + +Use the verified public release, private estate plan, provider inventory, queue journal, GitHub runs, and telemetry. diff --git a/skills/canonical/gds-drakkars-rollout-consumer/agents/openai.yaml b/skills/canonical/gds-drakkars-rollout-consumer/agents/openai.yaml new file mode 100644 index 0000000..8490498 --- /dev/null +++ b/skills/canonical/gds-drakkars-rollout-consumer/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Drakkars Rollout Consumer" + short_description: "Roll out fleet changes without losing jobs" + default_prompt: "Use $gds-drakkars-rollout-consumer for a canary-first consumer rollout." +policy: + allow_implicit_invocation: false diff --git a/skills/canonical/gds-drakkars-triage-run/SKILL.md b/skills/canonical/gds-drakkars-triage-run/SKILL.md new file mode 100644 index 0000000..7559f92 --- /dev/null +++ b/skills/canonical/gds-drakkars-triage-run/SKILL.md @@ -0,0 +1,49 @@ +--- +name: gds-drakkars-triage-run +description: Use this skill when one CI run or job is slow, queued, retried, stuck, or failed and the owner wants the cause. Trace it end to end with GitHub and fleet telemetry. Report evidence and safe recovery choices. Do not use it to cancel, rerun, restart, or modify the workflow. +--- + +# Contract + +Trace one run from event receipt to terminal result without changing state. + +## Use when + +- One identifiable run or job needs a causal explanation. + +## Do not use when + +- The request covers fleet-wide capacity, all workflows, or asks to apply recovery. + +## Inputs + +- Repository, run and attempt or job identity, plus the relevant time window. + +## Preconditions + +1. Confirm the GitHub identity and preserve current running state. + +## Workflow + +1. Capture repository, run, attempt, job, event, requested labels, commit, and timestamps. +2. Follow the same identifiers through admission, priority, assignment, provisioning, runner registration, setup, execution, upload, and teardown. +3. Locate the first abnormal stage; distinguish queue pressure, missing capability, infrastructure failure, deterministic test failure, flaky failure, timeout, and observability loss. +4. Compare with adjacent successful runs using the same workflow and toolchain. +5. If a transient infrastructure error is proven, recommend a bounded rerun; do not execute it here. +6. Preserve running jobs and label unsupported claims `NOT_PROVEN`. + +## Output + +Return the causal timeline, first failing stage, supporting links or private evidence locations, impact, and safest recovery path. + +## Stop conditions + +Stop before cancelling, rerunning, restarting, editing, or treating a retry as proof of repair. + +## Verification + +Use stable identifiers and distinguish observation, inference, and `NOT_PROVEN`. + +## References + +Use current GitHub job events, queue intents, provider leases, runner logs, and traces. diff --git a/skills/canonical/gds-drakkars-triage-run/agents/openai.yaml b/skills/canonical/gds-drakkars-triage-run/agents/openai.yaml new file mode 100644 index 0000000..f535e79 --- /dev/null +++ b/skills/canonical/gds-drakkars-triage-run/agents/openai.yaml @@ -0,0 +1,4 @@ +interface: + display_name: "Drakkars Triage Run" + short_description: "Explain a slow, queued, or failed CI run" + default_prompt: "Use $gds-drakkars-triage-run to trace one CI run from queue to completion." diff --git a/skills/evals/output/drakkars.json b/skills/evals/output/drakkars.json new file mode 100644 index 0000000..5fc0c7f --- /dev/null +++ b/skills/evals/output/drakkars.json @@ -0,0 +1,376 @@ +{ + "schema_version": 1, + "profile": "drakkars", + "status": "runtime-not-proven", + "tasks": [ + { + "id": "gds-drakkars-orient-output", + "skill": "gds-drakkars-orient", + "prompt": "Resolve the current CI and fleet context, authority boundaries, visibility constraints, evidence gaps, and safest next skill.", + "assertions": [ + { + "id": "verified-context", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate verified context with current authoritative evidence." + }, + { + "id": "public-private-boundary", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate public private boundary with current authoritative evidence." + }, + { + "id": "no-mutation", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate no mutation with current authoritative evidence." + } + ] + }, + { + "id": "gds-drakkars-audit-fleet-output", + "skill": "gds-drakkars-audit-fleet", + "prompt": "Audit fleet health, capacity, queue latency, compatibility, and telemetry without changing runtime or provider state.", + "assertions": [ + { + "id": "correlated-evidence", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate correlated evidence with current authoritative evidence." + }, + { + "id": "latency-decomposition", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate latency decomposition with current authoritative evidence." + }, + { + "id": "private-data-contained", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate private data contained with current authoritative evidence." + }, + { + "id": "no-mutation", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate no mutation with current authoritative evidence." + } + ] + }, + { + "id": "gds-drakkars-triage-run-output", + "skill": "gds-drakkars-triage-run", + "prompt": "Trace one slow or failed CI run through GitHub, admission, provider, runner, and teardown without rerunning it.", + "assertions": [ + { + "id": "causal-timeline", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate causal timeline with current authoritative evidence." + }, + { + "id": "first-abnormal-stage", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate first abnormal stage with current authoritative evidence." + }, + { + "id": "no-rerun-or-cancel", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate no rerun or cancel with current authoritative evidence." + } + ] + }, + { + "id": "gds-drakkars-audit-workflow-output", + "skill": "gds-drakkars-audit-workflow", + "prompt": "Audit one repository workflow set for complete coverage, safety, runner policy, and critical-path parallelism.", + "assertions": [ + { + "id": "coverage-map", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate coverage map with current authoritative evidence." + }, + { + "id": "critical-path", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate critical path with current authoritative evidence." + }, + { + "id": "runner-visibility-policy", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate runner visibility policy with current authoritative evidence." + }, + { + "id": "no-mutation", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate no mutation with current authoritative evidence." + } + ] + }, + { + "id": "gds-drakkars-optimize-workflow-output", + "skill": "gds-drakkars-optimize-workflow", + "prompt": "Implement an approved workflow optimization while preserving checks, security, observability, and unrelated work.", + "assertions": [ + { + "id": "coverage-preserved", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate coverage preserved with current authoritative evidence." + }, + { + "id": "validation-evidence", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate validation evidence with current authoritative evidence." + }, + { + "id": "latency-hypothesis", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate latency hypothesis with current authoritative evidence." + }, + { + "id": "explicit-invocation", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate explicit invocation with current authoritative evidence." + } + ] + }, + { + "id": "gds-drakkars-onboard-project-output", + "skill": "gds-drakkars-onboard-project", + "prompt": "Plan and execute an approved one-repository CI onboarding with technology inventory, canary, evidence, and rollback.", + "assertions": [ + { + "id": "technology-inventory", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate technology inventory with current authoritative evidence." + }, + { + "id": "visibility-runner-map", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate visibility runner map with current authoritative evidence." + }, + { + "id": "canary-before-promotion", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate canary before promotion with current authoritative evidence." + }, + { + "id": "rollback-evidence", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate rollback evidence with current authoritative evidence." + } + ] + }, + { + "id": "gds-drakkars-rollout-consumer-output", + "skill": "gds-drakkars-rollout-consumer", + "prompt": "Perform an approved canary-first consumer rollout with coexistence, drain proof, exact pins, and no job cancellation.", + "assertions": [ + { + "id": "exact-identities", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate exact identities with current authoritative evidence." + }, + { + "id": "coexistence-and-canary", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate coexistence and canary with current authoritative evidence." + }, + { + "id": "zero-active-drain", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate zero active drain with current authoritative evidence." + }, + { + "id": "no-job-cancellation", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate no job cancellation with current authoritative evidence." + } + ] + }, + { + "id": "gds-ci-workflows-design-output", + "skill": "gds-ci-workflows-design", + "prompt": "Design complete portable reusable CI with a minimal DAG, technology setup, security, telemetry, and acceptance fixtures.", + "assertions": [ + { + "id": "coverage-matrix", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate coverage matrix with current authoritative evidence." + }, + { + "id": "portable-interface", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate portable interface with current authoritative evidence." + }, + { + "id": "minimal-dag", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate minimal dag with current authoritative evidence." + }, + { + "id": "telemetry-contract", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate telemetry contract with current authoritative evidence." + } + ] + }, + { + "id": "gds-ci-performance-verify-output", + "skill": "gds-ci-performance-verify", + "prompt": "Compare matched before and after CI cohorts using end-to-end latency, reliability, and evidence limitations.", + "assertions": [ + { + "id": "matched-cohorts", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate matched cohorts with current authoritative evidence." + }, + { + "id": "stage-decomposition", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate stage decomposition with current authoritative evidence." + }, + { + "id": "reliability-impact", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate reliability impact with current authoritative evidence." + }, + { + "id": "not-proven-discipline", + "method": "model-judge", + "evidence": [ + "final-output", + "tool-events" + ], + "rubric": "The result must demonstrate not proven discipline with current authoritative evidence." + } + ] + } + ] +} diff --git a/skills/evals/trigger/drakkars.json b/skills/evals/trigger/drakkars.json new file mode 100644 index 0000000..5ad1e0a --- /dev/null +++ b/skills/evals/trigger/drakkars.json @@ -0,0 +1,1294 @@ +{ + "schema_version": 1, + "profile": "drakkars", + "runs_per_query": 3, + "skills": [ + { + "name": "gds-drakkars-orient", + "positive": [ + { + "id": "gds-drakkars-orient-p01", + "split": "train", + "query": "Explain where this CI runner behavior is owned and which Git boundary applies.", + "expected": "gds-drakkars-orient", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-orient-p02", + "split": "train", + "query": "Разреши текущий контекст Drakkars и границу public product versus private estate.", + "expected": "gds-drakkars-orient", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-orient-p03", + "split": "train", + "query": "Which runner policy applies to this repository without changing anything?", + "expected": "gds-drakkars-orient", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-orient-p04", + "split": "train", + "query": "Show the verified authority chain for this CI configuration.", + "expected": "gds-drakkars-orient", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-orient-p05", + "split": "train", + "query": "Где хранить переносимую логику CI, а где приватные сведения флота?", + "expected": "gds-drakkars-orient", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-orient-p06", + "split": "validation", + "query": "Orient me before I inspect this repository's runners.", + "expected": "gds-drakkars-orient", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-orient-p07", + "split": "validation", + "query": "Resolve visibility and active Drakkars skill profile for this checkout.", + "expected": "gds-drakkars-orient", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-orient-p08", + "split": "validation", + "query": "Map this nested module to its canonical CI and fleet owners.", + "expected": "gds-drakkars-orient", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + } + ], + "negative": [ + { + "id": "gds-drakkars-orient-n01", + "split": "train", + "query": "Audit all fleet capacity and telemetry for the last day.", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-orient-n02", + "split": "train", + "query": "Optimize this workflow and commit the changes.", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-orient-n03", + "split": "train", + "query": "Trace why run 123 failed.", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-orient-n04", + "split": "train", + "query": "Roll out the new runner label to every repository.", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-orient-n05", + "split": "train", + "query": "Design a reusable workflow for Python tests.", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-orient-n06", + "split": "validation", + "query": "Compare p95 CI latency before and after the rollout.", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-orient-n07", + "split": "validation", + "query": "Onboard this repository to the private fleet.", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-orient-n08", + "split": "validation", + "query": "Review this workflow for missing test coverage.", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + } + ] + }, + { + "name": "gds-drakkars-audit-fleet", + "positive": [ + { + "id": "gds-drakkars-audit-fleet-p01", + "split": "train", + "query": "Audit current Drakkars capacity, queues, logs, and telemetry without changing state.", + "expected": "gds-drakkars-audit-fleet", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-audit-fleet-p02", + "split": "train", + "query": "Почему весь fleet медленный? Проведи read-only аудит всех четырёх узлов.", + "expected": "gds-drakkars-audit-fleet", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-audit-fleet-p03", + "split": "train", + "query": "Check runner availability, retries, OOMs, and unsupported tool failures.", + "expected": "gds-drakkars-audit-fleet", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-audit-fleet-p04", + "split": "train", + "query": "Correlate GitHub queue times with provider and OpenObserve evidence.", + "expected": "gds-drakkars-audit-fleet", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-audit-fleet-p05", + "split": "train", + "query": "Проверь загрузку флота и полноту логов за последние шесть часов.", + "expected": "gds-drakkars-audit-fleet", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-audit-fleet-p06", + "split": "validation", + "query": "Find capacity fragmentation and compatibility gaps across the fleet.", + "expected": "gds-drakkars-audit-fleet", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-audit-fleet-p07", + "split": "validation", + "query": "Report queue latency by priority and pool without restarting anything.", + "expected": "gds-drakkars-audit-fleet", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + }, + { + "id": "gds-drakkars-audit-fleet-p08", + "split": "validation", + "query": "Audit fleet reliability, orphan runners, and telemetry loss.", + "expected": "gds-drakkars-audit-fleet", + "must_not_trigger": [ + "gds-drakkars-orient" + ] + } + ], + "negative": [ + { + "id": "gds-drakkars-audit-fleet-n01", + "split": "train", + "query": "Tell me only which repository owns the fleet engine.", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-audit-fleet-n02", + "split": "train", + "query": "Fix the placement algorithm and deploy it.", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-audit-fleet-n03", + "split": "train", + "query": "Investigate one specific failed job only.", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-audit-fleet-n04", + "split": "train", + "query": "Review a single workflow file for coverage.", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-audit-fleet-n05", + "split": "train", + "query": "Onboard a new repository to Drakkars.", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-audit-fleet-n06", + "split": "validation", + "query": "Roll out a new label to consumers.", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-audit-fleet-n07", + "split": "validation", + "query": "Design reusable CI jobs for Rust.", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-audit-fleet-n08", + "split": "validation", + "query": "Compare two already collected benchmark cohorts.", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + } + ] + }, + { + "name": "gds-drakkars-triage-run", + "positive": [ + { + "id": "gds-drakkars-triage-run-p01", + "split": "train", + "query": "Trace this queued GitHub Actions run end to end and explain the delay.", + "expected": "gds-drakkars-triage-run", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-triage-run-p02", + "split": "train", + "query": "Почему job 96859476362 выполняется пять часов?", + "expected": "gds-drakkars-triage-run", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-triage-run-p03", + "split": "train", + "query": "Find the first failing stage for run 123 attempt 2.", + "expected": "gds-drakkars-triage-run", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-triage-run-p04", + "split": "train", + "query": "Correlate this job with its GARM intent, runner, and provider instance.", + "expected": "gds-drakkars-triage-run", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-triage-run-p05", + "split": "train", + "query": "Explain whether this one failure is infrastructure, flaky, or deterministic.", + "expected": "gds-drakkars-triage-run", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-triage-run-p06", + "split": "validation", + "query": "Investigate why this run was retried without rerunning it.", + "expected": "gds-drakkars-triage-run", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-triage-run-p07", + "split": "validation", + "query": "Build a causal timeline for this stuck CI job.", + "expected": "gds-drakkars-triage-run", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-triage-run-p08", + "split": "validation", + "query": "Compare this failed job with an adjacent successful run.", + "expected": "gds-drakkars-triage-run", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + } + ], + "negative": [ + { + "id": "gds-drakkars-triage-run-n01", + "split": "train", + "query": "Audit the entire fleet for the last week.", + "must_not_trigger": [ + "gds-drakkars-triage-run" + ] + }, + { + "id": "gds-drakkars-triage-run-n02", + "split": "train", + "query": "Optimize all workflows in this repository.", + "must_not_trigger": [ + "gds-drakkars-triage-run" + ] + }, + { + "id": "gds-drakkars-triage-run-n03", + "split": "train", + "query": "Explain which module owns CI policy.", + "must_not_trigger": [ + "gds-drakkars-triage-run" + ] + }, + { + "id": "gds-drakkars-triage-run-n04", + "split": "train", + "query": "Roll out a new runner image.", + "must_not_trigger": [ + "gds-drakkars-triage-run" + ] + }, + { + "id": "gds-drakkars-triage-run-n05", + "split": "train", + "query": "Design the complete CI architecture.", + "must_not_trigger": [ + "gds-drakkars-triage-run" + ] + }, + { + "id": "gds-drakkars-triage-run-n06", + "split": "validation", + "query": "Measure estate-wide p95 after rollout.", + "must_not_trigger": [ + "gds-drakkars-triage-run" + ] + }, + { + "id": "gds-drakkars-triage-run-n07", + "split": "validation", + "query": "Onboard this project to runners.", + "must_not_trigger": [ + "gds-drakkars-triage-run" + ] + }, + { + "id": "gds-drakkars-triage-run-n08", + "split": "validation", + "query": "Review every workflow for missing coverage.", + "must_not_trigger": [ + "gds-drakkars-triage-run" + ] + } + ] + }, + { + "name": "gds-drakkars-audit-workflow", + "positive": [ + { + "id": "gds-drakkars-audit-workflow-p01", + "split": "train", + "query": "Audit this repository's workflows for coverage, safety, and parallelism.", + "expected": "gds-drakkars-audit-workflow", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-p02", + "split": "train", + "query": "Проверь GitHub Actions проекта, ничего не меняя.", + "expected": "gds-drakkars-audit-workflow", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-p03", + "split": "train", + "query": "Find accidental serialization and missing required checks.", + "expected": "gds-drakkars-audit-workflow", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-p04", + "split": "train", + "query": "Review runner selection for public and private Linux jobs.", + "expected": "gds-drakkars-audit-workflow", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-p05", + "split": "train", + "query": "Audit permissions, pins, caches, matrices, and failure artifacts.", + "expected": "gds-drakkars-audit-workflow", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-p06", + "split": "validation", + "query": "Map project technologies to actual CI jobs and report gaps.", + "expected": "gds-drakkars-audit-workflow", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-p07", + "split": "validation", + "query": "Build the workflow critical path without editing YAML.", + "expected": "gds-drakkars-audit-workflow", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-p08", + "split": "validation", + "query": "Check whether this CI is complete and fork-safe.", + "expected": "gds-drakkars-audit-workflow", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + } + ], + "negative": [ + { + "id": "gds-drakkars-audit-workflow-n01", + "split": "train", + "query": "Implement the workflow improvements now.", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-n02", + "split": "train", + "query": "Audit all four fleet hosts and provider retries.", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-n03", + "split": "train", + "query": "Trace one failed run by its ID.", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-n04", + "split": "train", + "query": "Explain only where runner policy is owned.", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-n05", + "split": "train", + "query": "Onboard this repository to Drakkars.", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-n06", + "split": "validation", + "query": "Roll out a scale-set label.", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-n07", + "split": "validation", + "query": "Design a new reusable workflow library.", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-audit-workflow-n08", + "split": "validation", + "query": "Prove the last deployment improved p95.", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + } + ] + }, + { + "name": "gds-drakkars-optimize-workflow", + "positive": [ + { + "id": "gds-drakkars-optimize-workflow-p01", + "split": "train", + "query": "Use $gds-drakkars-optimize-workflow to reduce this CI critical path without losing tests.", + "expected": "gds-drakkars-optimize-workflow", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-p02", + "split": "train", + "query": "Оптимизируй workflow и реализуй безопасное распараллеливание.", + "expected": "gds-drakkars-optimize-workflow", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-p03", + "split": "train", + "query": "Implement faster lockfile-aware setup and preserve required checks.", + "expected": "gds-drakkars-optimize-workflow", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-p04", + "split": "train", + "query": "Change these workflows to use the correct runners and verify them.", + "expected": "gds-drakkars-optimize-workflow", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-p05", + "split": "train", + "query": "Remove accidental job serialization while keeping coverage.", + "expected": "gds-drakkars-optimize-workflow", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-p06", + "split": "validation", + "query": "Refactor duplicated setup into pinned reusable CI behavior.", + "expected": "gds-drakkars-optimize-workflow", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-p07", + "split": "validation", + "query": "Improve workflow logs, timeouts, caching, and execution speed.", + "expected": "gds-drakkars-optimize-workflow", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-p08", + "split": "validation", + "query": "Implement the approved CI optimization in this repository.", + "expected": "gds-drakkars-optimize-workflow", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + } + ], + "negative": [ + { + "id": "gds-drakkars-optimize-workflow-n01", + "split": "train", + "query": "Only audit this workflow and report findings.", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-n02", + "split": "train", + "query": "Inspect current fleet capacity without edits.", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-n03", + "split": "train", + "query": "Trace a single slow run.", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-n04", + "split": "train", + "query": "Explain public versus private authority.", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-n05", + "split": "train", + "query": "Deploy a new runner pool.", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-n06", + "split": "validation", + "query": "Onboard a different repository.", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-n07", + "split": "validation", + "query": "Design reusable behavior but do not edit.", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-drakkars-optimize-workflow-n08", + "split": "validation", + "query": "Compare measured before and after cohorts.", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + } + ] + }, + { + "name": "gds-drakkars-onboard-project", + "positive": [ + { + "id": "gds-drakkars-onboard-project-p01", + "split": "train", + "query": "Use $gds-drakkars-onboard-project to connect this private repository to Drakkars.", + "expected": "gds-drakkars-onboard-project", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-onboard-project-p02", + "split": "train", + "query": "Подключи новый проект к нашему CI и проверь все его технологии.", + "expected": "gds-drakkars-onboard-project", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-onboard-project-p03", + "split": "train", + "query": "Onboard this public repository with hosted Linux runners and complete checks.", + "expected": "gds-drakkars-onboard-project", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-onboard-project-p04", + "split": "train", + "query": "Inventory package managers and create the correct runner mapping for this repo.", + "expected": "gds-drakkars-onboard-project", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-onboard-project-p05", + "split": "train", + "query": "Add deterministic CI, canary it, and record estate evidence for one project.", + "expected": "gds-drakkars-onboard-project", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-onboard-project-p06", + "split": "validation", + "query": "Migrate this repository onto reusable workflows without interrupting current jobs.", + "expected": "gds-drakkars-onboard-project", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-onboard-project-p07", + "split": "validation", + "query": "Configure one project's required checks and fleet labels safely.", + "expected": "gds-drakkars-onboard-project", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + }, + { + "id": "gds-drakkars-onboard-project-p08", + "split": "validation", + "query": "Complete end-to-end Drakkars onboarding for this repository.", + "expected": "gds-drakkars-onboard-project", + "must_not_trigger": [ + "gds-drakkars-audit-workflow" + ] + } + ], + "negative": [ + { + "id": "gds-drakkars-onboard-project-n01", + "split": "train", + "query": "Audit an already onboarded fleet without changes.", + "must_not_trigger": [ + "gds-drakkars-onboard-project" + ] + }, + { + "id": "gds-drakkars-onboard-project-n02", + "split": "train", + "query": "Optimize existing workflow latency only.", + "must_not_trigger": [ + "gds-drakkars-onboard-project" + ] + }, + { + "id": "gds-drakkars-onboard-project-n03", + "split": "train", + "query": "Trace one queued job.", + "must_not_trigger": [ + "gds-drakkars-onboard-project" + ] + }, + { + "id": "gds-drakkars-onboard-project-n04", + "split": "train", + "query": "Explain which repository owns the runner policy.", + "must_not_trigger": [ + "gds-drakkars-onboard-project" + ] + }, + { + "id": "gds-drakkars-onboard-project-n05", + "split": "train", + "query": "Roll out one existing label to many consumers.", + "must_not_trigger": [ + "gds-drakkars-onboard-project" + ] + }, + { + "id": "gds-drakkars-onboard-project-n06", + "split": "validation", + "query": "Design generic reusable CI without applying it.", + "must_not_trigger": [ + "gds-drakkars-onboard-project" + ] + }, + { + "id": "gds-drakkars-onboard-project-n07", + "split": "validation", + "query": "Compare CI performance cohorts.", + "must_not_trigger": [ + "gds-drakkars-onboard-project" + ] + }, + { + "id": "gds-drakkars-onboard-project-n08", + "split": "validation", + "query": "Review the repository workflows without editing.", + "must_not_trigger": [ + "gds-drakkars-onboard-project" + ] + } + ] + }, + { + "name": "gds-drakkars-rollout-consumer", + "positive": [ + { + "id": "gds-drakkars-rollout-consumer-p01", + "split": "train", + "query": "Use $gds-drakkars-rollout-consumer to migrate selected repositories to the new label.", + "expected": "gds-drakkars-rollout-consumer", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-p02", + "split": "train", + "query": "Разверни новую версию runner behavior через canary и волны.", + "expected": "gds-drakkars-rollout-consumer", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-p03", + "split": "train", + "query": "Enable new capacity, canary it, then drain the old scale set safely.", + "expected": "gds-drakkars-rollout-consumer", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-p04", + "split": "train", + "query": "Roll out this public workflow release to private consumers using exact pins.", + "expected": "gds-drakkars-rollout-consumer", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-p05", + "split": "train", + "query": "Move one consumer while old and new runner paths coexist.", + "expected": "gds-drakkars-rollout-consumer", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-p06", + "split": "validation", + "query": "Perform the approved fleet label cutover without cancelling jobs.", + "expected": "gds-drakkars-rollout-consumer", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-p07", + "split": "validation", + "query": "Promote the verified runner image through bounded consumer waves.", + "expected": "gds-drakkars-rollout-consumer", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-p08", + "split": "validation", + "query": "Complete the rollout and record drain and rollback evidence.", + "expected": "gds-drakkars-rollout-consumer", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + } + ], + "negative": [ + { + "id": "gds-drakkars-rollout-consumer-n01", + "split": "train", + "query": "Audit rollout readiness without applying anything.", + "must_not_trigger": [ + "gds-drakkars-rollout-consumer" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-n02", + "split": "train", + "query": "Optimize one repository's workflow YAML.", + "must_not_trigger": [ + "gds-drakkars-rollout-consumer" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-n03", + "split": "train", + "query": "Trace one failed canary run.", + "must_not_trigger": [ + "gds-drakkars-rollout-consumer" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-n04", + "split": "train", + "query": "Explain where the new label is owned.", + "must_not_trigger": [ + "gds-drakkars-rollout-consumer" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-n05", + "split": "train", + "query": "Onboard a brand-new project.", + "must_not_trigger": [ + "gds-drakkars-rollout-consumer" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-n06", + "split": "validation", + "query": "Design the reusable workflow interface.", + "must_not_trigger": [ + "gds-drakkars-rollout-consumer" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-n07", + "split": "validation", + "query": "Compare performance after an already completed rollout.", + "must_not_trigger": [ + "gds-drakkars-rollout-consumer" + ] + }, + { + "id": "gds-drakkars-rollout-consumer-n08", + "split": "validation", + "query": "Audit the whole fleet for capacity.", + "must_not_trigger": [ + "gds-drakkars-rollout-consumer" + ] + } + ] + }, + { + "name": "gds-ci-workflows-design", + "positive": [ + { + "id": "gds-ci-workflows-design-p01", + "split": "train", + "query": "Design complete reusable CI for a Python and Node monorepo.", + "expected": "gds-ci-workflows-design", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-ci-workflows-design-p02", + "split": "train", + "query": "Спроектируй полный набор reusable GitHub Actions jobs без реализации.", + "expected": "gds-ci-workflows-design", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-ci-workflows-design-p03", + "split": "train", + "query": "Define the CI coverage matrix, DAG, permissions, and telemetry contract.", + "expected": "gds-ci-workflows-design", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-ci-workflows-design-p04", + "split": "train", + "query": "Design portable workflows with consumer-supplied runner labels.", + "expected": "gds-ci-workflows-design", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-ci-workflows-design-p05", + "split": "train", + "query": "Specify lockfile-aware setup for npm, bun, pnpm, uv, and pip.", + "expected": "gds-ci-workflows-design", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-ci-workflows-design-p06", + "split": "validation", + "query": "Create a reusable CI architecture for tests, security, build, and release.", + "expected": "gds-ci-workflows-design", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-ci-workflows-design-p07", + "split": "validation", + "query": "Describe hosted and private-fleet acceptance fixtures for this workflow module.", + "expected": "gds-ci-workflows-design", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + }, + { + "id": "gds-ci-workflows-design-p08", + "split": "validation", + "query": "Design fast complete CI while keeping private identities out of public code.", + "expected": "gds-ci-workflows-design", + "must_not_trigger": [ + "gds-drakkars-optimize-workflow" + ] + } + ], + "negative": [ + { + "id": "gds-ci-workflows-design-n01", + "split": "train", + "query": "Implement these workflows in the repository.", + "must_not_trigger": [ + "gds-ci-workflows-design" + ] + }, + { + "id": "gds-ci-workflows-design-n02", + "split": "train", + "query": "Audit current fleet health.", + "must_not_trigger": [ + "gds-ci-workflows-design" + ] + }, + { + "id": "gds-ci-workflows-design-n03", + "split": "train", + "query": "Trace a specific failed run.", + "must_not_trigger": [ + "gds-ci-workflows-design" + ] + }, + { + "id": "gds-ci-workflows-design-n04", + "split": "train", + "query": "Explain current GDS context only.", + "must_not_trigger": [ + "gds-ci-workflows-design" + ] + }, + { + "id": "gds-ci-workflows-design-n05", + "split": "train", + "query": "Onboard this repository now.", + "must_not_trigger": [ + "gds-ci-workflows-design" + ] + }, + { + "id": "gds-ci-workflows-design-n06", + "split": "validation", + "query": "Roll out a workflow version to consumers.", + "must_not_trigger": [ + "gds-ci-workflows-design" + ] + }, + { + "id": "gds-ci-workflows-design-n07", + "split": "validation", + "query": "Measure p95 latency after deployment.", + "must_not_trigger": [ + "gds-ci-workflows-design" + ] + }, + { + "id": "gds-ci-workflows-design-n08", + "split": "validation", + "query": "Review existing YAML without proposing a new design.", + "must_not_trigger": [ + "gds-ci-workflows-design" + ] + } + ] + }, + { + "name": "gds-ci-performance-verify", + "positive": [ + { + "id": "gds-ci-performance-verify-p01", + "split": "train", + "query": "Verify whether the CI rollout improved end-to-end p95 latency.", + "expected": "gds-ci-performance-verify", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-ci-performance-verify-p02", + "split": "train", + "query": "Сравни скорость и надёжность CI до и после изменения.", + "expected": "gds-ci-performance-verify", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-ci-performance-verify-p03", + "split": "train", + "query": "Measure queue, provision, setup, execution, and deploy timing by cohort.", + "expected": "gds-ci-performance-verify", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-ci-performance-verify-p04", + "split": "train", + "query": "Check if faster jobs caused more retries or failures.", + "expected": "gds-ci-performance-verify", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-ci-performance-verify-p05", + "split": "train", + "query": "Compare matched cached and cold runs after the scheduler change.", + "expected": "gds-ci-performance-verify", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-ci-performance-verify-p06", + "split": "validation", + "query": "Prove or reject the claimed fleet performance improvement.", + "expected": "gds-ci-performance-verify", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-ci-performance-verify-p07", + "split": "validation", + "query": "Analyze critical-path latency by priority without tuning anything.", + "expected": "gds-ci-performance-verify", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + }, + { + "id": "gds-ci-performance-verify-p08", + "split": "validation", + "query": "Report median p90 p95 throughput and telemetry gaps for this rollout.", + "expected": "gds-ci-performance-verify", + "must_not_trigger": [ + "gds-drakkars-audit-fleet" + ] + } + ], + "negative": [ + { + "id": "gds-ci-performance-verify-n01", + "split": "train", + "query": "Optimize the workflow based on these metrics.", + "must_not_trigger": [ + "gds-ci-performance-verify" + ] + }, + { + "id": "gds-ci-performance-verify-n02", + "split": "train", + "query": "Audit current fleet health without a before cohort.", + "must_not_trigger": [ + "gds-ci-performance-verify" + ] + }, + { + "id": "gds-ci-performance-verify-n03", + "split": "train", + "query": "Trace one slow run.", + "must_not_trigger": [ + "gds-ci-performance-verify" + ] + }, + { + "id": "gds-ci-performance-verify-n04", + "split": "train", + "query": "Explain runner ownership.", + "must_not_trigger": [ + "gds-ci-performance-verify" + ] + }, + { + "id": "gds-ci-performance-verify-n05", + "split": "train", + "query": "Onboard a repository.", + "must_not_trigger": [ + "gds-ci-performance-verify" + ] + }, + { + "id": "gds-ci-performance-verify-n06", + "split": "validation", + "query": "Roll out the scheduler change.", + "must_not_trigger": [ + "gds-ci-performance-verify" + ] + }, + { + "id": "gds-ci-performance-verify-n07", + "split": "validation", + "query": "Design reusable CI jobs.", + "must_not_trigger": [ + "gds-ci-performance-verify" + ] + }, + { + "id": "gds-ci-performance-verify-n08", + "split": "validation", + "query": "Review workflow coverage and permissions.", + "must_not_trigger": [ + "gds-ci-performance-verify" + ] + } + ] + } + ] +} diff --git a/skills/registry.yaml b/skills/registry.yaml index bc842f9..421df2d 100644 --- a/skills/registry.yaml +++ b/skills/registry.yaml @@ -53,6 +53,19 @@ profiles: - "gds-triage-estate-drift" - "gds-change-portfolio" + - id: "drakkars" + scope: "control-plane" + skills: + - "gds-drakkars-orient" + - "gds-drakkars-audit-fleet" + - "gds-drakkars-triage-run" + - "gds-drakkars-audit-workflow" + - "gds-drakkars-optimize-workflow" + - "gds-drakkars-onboard-project" + - "gds-drakkars-rollout-consumer" + - "gds-ci-workflows-design" + - "gds-ci-performance-verify" + plugins: - id: "gds-core" profiles: @@ -68,6 +81,11 @@ plugins: profiles: - "module" + - id: "gds-drakkars" + profiles: + - "core" + - "drakkars" + skills: - name: "gds-orient" path: "skills/canonical/gds-orient" @@ -291,3 +309,84 @@ skills: display_name: "GDS Reconcile Provider Change" short_description: "Reconcile the estate after a provider-side repository change" default_prompt: "Use $gds-reconcile-provider-change to reconcile the estate after a rename, transfer, archive, or owner-login case drift." + + - name: "gds-drakkars-orient" + path: "skills/canonical/gds-drakkars-orient" + invocation: "implicit" + mutation: "none" + interface: + display_name: "Drakkars Orient" + short_description: "Resolve CI fleet authority and safe workflow" + default_prompt: "Use $gds-drakkars-orient to resolve the verified CI and fleet context." + + - name: "gds-drakkars-audit-fleet" + path: "skills/canonical/gds-drakkars-audit-fleet" + invocation: "implicit" + mutation: "none" + interface: + display_name: "Drakkars Audit Fleet" + short_description: "Audit fleet health, capacity, and compatibility" + default_prompt: "Use $gds-drakkars-audit-fleet for a read-only evidence-backed fleet audit." + + - name: "gds-drakkars-triage-run" + path: "skills/canonical/gds-drakkars-triage-run" + invocation: "implicit" + mutation: "none" + interface: + display_name: "Drakkars Triage Run" + short_description: "Explain a slow, queued, or failed CI run" + default_prompt: "Use $gds-drakkars-triage-run to trace one CI run from queue to completion." + + - name: "gds-drakkars-audit-workflow" + path: "skills/canonical/gds-drakkars-audit-workflow" + invocation: "implicit" + mutation: "none" + interface: + display_name: "Drakkars Audit Workflow" + short_description: "Audit CI coverage, safety, and parallelism" + default_prompt: "Use $gds-drakkars-audit-workflow for a read-only workflow audit." + + - name: "gds-drakkars-optimize-workflow" + path: "skills/canonical/gds-drakkars-optimize-workflow" + invocation: "explicit-only" + mutation: "local" + interface: + display_name: "Drakkars Optimize Workflow" + short_description: "Optimize CI latency without reducing coverage" + default_prompt: "Use $gds-drakkars-optimize-workflow to implement an approved workflow optimization." + + - name: "gds-drakkars-onboard-project" + path: "skills/canonical/gds-drakkars-onboard-project" + invocation: "explicit-only" + mutation: "external" + interface: + display_name: "Drakkars Onboard Project" + short_description: "Connect one project to its correct CI runners" + default_prompt: "Use $gds-drakkars-onboard-project to onboard one approved project to Drakkars." + + - name: "gds-drakkars-rollout-consumer" + path: "skills/canonical/gds-drakkars-rollout-consumer" + invocation: "explicit-only" + mutation: "external" + interface: + display_name: "Drakkars Rollout Consumer" + short_description: "Roll out fleet changes without losing jobs" + default_prompt: "Use $gds-drakkars-rollout-consumer for a canary-first consumer rollout." + + - name: "gds-ci-workflows-design" + path: "skills/canonical/gds-ci-workflows-design" + invocation: "implicit" + mutation: "none" + interface: + display_name: "CI Workflows Design" + short_description: "Design complete reusable CI behavior" + default_prompt: "Use $gds-ci-workflows-design to design complete reusable CI for a project." + + - name: "gds-ci-performance-verify" + path: "skills/canonical/gds-ci-performance-verify" + invocation: "implicit" + mutation: "none" + interface: + display_name: "CI Performance Verify" + short_description: "Verify CI speed with comparable evidence" + default_prompt: "Use $gds-ci-performance-verify to compare CI latency and reliability evidence."