Skip to main content

threadlight-customize

Use when an SE or a customer's platform team needs to FORK the Threadlight pipeline and adapt it to one customer's environment — landing zones, identity, RBAC, deploy pipelines, governance — with PRODUCTION ONBOARDING as priority #1. An instructions/runbooks skill (not automation): intake gate, customization map (keep vs per-customer-override), test-in-customer-environment runbook for private-VNet envs, and a fork-runbook (upstream-pin + overlay merge). USE FOR: fork threadlight, customize threadlight, customer onboarding, production onboarding, onboard a customer, adapt the pipeline, tailor threadlight, customer landing zone, customer RBAC, customization map, what to fork vs keep, upstream pin, overlay merge, test in customer environment. DO NOT USE FOR: generating the prod deploy pipeline (use threadlight-cicd); the readiness scorecard (use threadlight-production-ready); the first-run deploy (use threadlight-deploy); a central hub (use citadel-spoke-onboarding / citadel-hub-deploy).

الانتقال إلى التثبيت

معلومات المصدر

المستودع
aiappsgbb/threadlight-skills
آخر نشاط في المصدر
٢٦ يونيو ٢٠٢٦ في ٢١:٤٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١
التفرعات
٥

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
12 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
threadlight-customize
description
Use when an SE or a customer's platform team needs to FORK the Threadlight pipeline and adapt it to one customer's environment — landing zones, identity, RBAC, deploy pipelines, governance — with PRODUCTION ONBOARDING as priority #1. An instructions/runbooks skill (not automation): intake gate, customization map (keep vs per-customer-override), test-in-customer-environment runbook for private-VNet envs, and a fork-runbook (upstream-pin + overlay merge). USE FOR: fork threadlight, customize threadlight, customer onboarding, production onboarding, onboard a customer, adapt the pipeline, tailor threadlight, customer landing zone, customer RBAC, customization map, what to fork vs keep, upstream pin, overlay merge, test in customer environment. DO NOT USE FOR: generating the prod deploy pipeline (use threadlight-cicd); the readiness scorecard (use threadlight-production-ready); the first-run deploy (use threadlight-deploy); a central hub (use citadel-spoke-onboarding / citadel-hub-deploy).
metadata
{"version":"0.1.0"}
# Threadlight Customize — fork the pipeline, onboard a real customer > The final leg. It answers "**how do I take Threadlight and stand it up > inside *this* customer — their landing zones, their RBAC, their pipelines, > their governance — and actually test it on *their* environment?**" It does > this with **instructions and fill-in runbooks, not automation.** Production > onboarding is too high-variance to encode; this skill gives you the frame, > the intake, and the customer-env test loop, then gets out of the way. ## Why this skill exists (and why it is not a generator) Every other Threadlight skill is opinionated and deterministic because its inputs are bounded (a SPEC section, a set of selectors, an `azd env`). The **production onboarding of a specific customer is not bounded.** Their landing-zone topology, identity model, allowed regions, private DNS, egress rules, mandated IaC modules, change-management gates, and approval chains are all theirs — and no two are the same. Trying to cover every permutation in code produces a generator that is wrong for everyone. So this skill is **prose + templates**. It captures what you must learn from the customer, tells you which Threadlight skills to fork-and-override vs keep as-is, and shows you how to run the dev/test loop **inside the customer's boundary** (the part the field kept getting stuck on). What it deliberately does **not** do is generate the onboarding for you. See [`references/non-coverage.md`](references/non-coverage.md) — that honesty is a feature. ## Where it sits in the pipeline ``` … → threadlight-production-ready (advisory gate) → threadlight-cicd (prod-deploy pipeline, locked-down env) → threadlight-customize ◄── you are here (fork + customer onboarding) ``` It is a **manual handoff leg**, like `threadlight-cicd`. **`threadlight-auto` does not drive it** — `auto` is a pilot driver, not a customer-onboarding orchestrator. Run it when the pilot has proven out and the conversation turns to "now make this live inside *our* environment." You can also start the **intake gate (Move 1) early**, in parallel with the pilot, because the intake is the long pole. ## Audience Written for **two operators**, SE-led path first: - **SE / GBB (primary).** You fork Threadlight, run the intake with the customer, customize the production-onboarding leg, and run the test loop inside their environment. - **Customer platform / engineering team (secondary).** Everything here is also a self-serve runbook a customer team can follow to adopt Threadlight internally. Where the two paths differ, the step says so. ## The four moves Run them in order. Each move produces one durable artifact under `docs/threadlight-customize/` so the engagement is auditable and resumable. ### Move 1 — Intake gate (the long pole) **You cannot customize what you have not been given.** The field's #1 blocker was getting the customer inputs, not writing code. Open the engagement by filling in the intake workbook **with** the customer: - Copy [`references/customer-profile.md.tmpl`](references/customer-profile.md.tmpl) to `docs/threadlight-customize/customer-profile.md`. - Work it top to bottom with the customer's cloud/platform owner. It has four blocks: **customer documents**, **environment setup**, **requirements**, and **mandated template/starter code**. - Treat every unfilled field as a **blocker**, not a TODO. A blank "private DNS zones" or "allowed regions" line will stop the deploy later; surface it now. The workbook is the single source of truth every later move reads. Do not proceed to Move 2 until the **environment setup** and **mandated template code** blocks are complete — those two drive every override decision. ### Move 2 — Customization map (what to fork vs keep) Decide, per skill, what you change and what you leave alone. Read [`references/customization-map.md`](references/customization-map.md): it classifies every Threadlight skill as **customer-agnostic (keep as-is)** or **needs per-customer override**, and names the exact SPEC section / selector / `azd env` hook to change. **Production-onboarding skills are priority #1** — they are where the customer's environment actually bites: | Skill | Typical customer override | |---|---| | `threadlight-deploy` | landing-zone targeting (sub/RG), resource selectors, region allow-list, private-endpoint + private-DNS wiring | | `threadlight-safe-check` | customer resource selectors + naming standard the gate validates against | | `threadlight-cicd` | pipeline shape, federated identity model, scoped RBAC, runner topology (this skill *generates* it; you feed it the customer's constraints) | | `threadlight-production-ready` | pillar thresholds + `customer_overrides` to match the customer's policy baseline | Capture the decisions in `docs/threadlight-customize/customization-map.md` (copy the table from the reference and fill the right-hand column). Keep your overrides in an **overlay**, not by editing forked skills in place — see the fork runbook below — so you can still pull upstream Threadlight updates. ### Move 3 — Test it on the customer's environment The pilot proves the agent works on an SE sandbox. Production onboarding only proves out when you can run the loop **inside the customer's boundary** — often a **fully-private (private-VNet) environment** with no public egress. This is the move the field repeatedly got stuck on; two patterns work: - **GitHub Codespaces** (private networking) — [`references/private-env-test/codespaces.md`](references/private-env-test/codespaces.md). - **Azure ML compute instance + VS Code (Remote)** — [`references/private-env-test/azure-ml-vscode.md`](references/private-env-test/azure-ml-vscode.md). Before you run the Threadlight `local-test` / `deploy` loop from inside the boundary, work the pre-flight in [`references/private-env-test/private-vnet-checklist.md`](references/private-env-test/private-vnet-checklist.md): private DNS resolution, egress posture, and reachability of the Foundry, ACR, Cosmos, and Key Vault **private endpoints**. A green pre-flight is the gate to running deploy — a half-resolved private DNS zone fails the deploy in a way that looks like an auth error and burns an afternoon. ### Move 4 — Name the boundary (what we do NOT automate) Close the engagement honestly. Fill in [`references/non-coverage.md`](references/non-coverage.md): the **seams you customized** (so the next SE can read the diff) and what Threadlight **deliberately does not automate** for this customer, plus a short decision log. This keeps expectations calibrated for the customer's CISO/architecture review and stops the next engagement from assuming the onboarding is turnkey. ## Fork mechanics (do this once, up front) Fork Threadlight the way that survives upstream updates. The full runbook is [`references/fork-runbook.md`](references/fork-runbook.md); the shape: 1. **Fork** the `threadlight-skills` repo (or install the plugin and overlay alongside it) into the customer's org / your engagement repo. 2. **Pin upstream.** Record the upstream commit you forked from — a lightweight fork-pin analogous in spirit to the `references/upstream-pin.md` freshness records that `threadlight-deploy` and `threadlight-local-test` keep for the sources they vendor. 3. **Overlay, don't fork-edit.** Keep customer overrides (selectors, env hooks, thresholds, mandated IaC) in a separate overlay directory layered over the pinned upstream, so a later `git merge` of upstream Threadlight does not clobber the customer's customizations. ## Quick reference | Move | Read | Produces | |---|---|---| | 0 — fork | `references/fork-runbook.md` | forked repo + `upstream-pin.md` | | 1 — intake | `references/customer-profile.md.tmpl` | `docs/threadlight-customize/customer-profile.md` | | 2 — map | `references/customization-map.md` | `docs/threadlight-customize/customization-map.md` | | 3 — test | `references/private-env-test/*` | a green private-VNet pre-flight + a test run inside the customer env | | 4 — boundary | `references/non-coverage.md` | `docs/threadlight-customize/non-coverage.md` | ## Common mistakes - **Treating intake as a formality.** The intake gate is the engagement's critical path. A blank field in the customer profile is a future blocked deploy. Fill it before you write a single override. - **Editing forked skills in place.** You will want upstream fixes later; in-place edits make the merge a nightmare. Use the overlay. - **Testing only on the SE sandbox.** A pilot that passes on your sandbox and has never run inside the customer's private VNet is not onboarded. Move 3 is not optional. - **Pretending the onboarding is automated.** It is not, by design. If you find yourself writing a generator that branches on the customer's landing zone, stop — that is the seam this skill exists to keep as instructions. - **Letting `threadlight-auto` drive this.** It is a manual leg. `auto` stops at the pilot; the customer onboarding is a human-led handoff. ## References - [`references/customer-profile.md.tmpl`](references/customer-profile.md.tmpl) — the Move 1 intake workbook (documents, env setup, requirements, mandated template code). - [`references/customization-map.md`](references/customization-map.md) — the Move 2 fork-vs-keep classification, production-onboarding skills flagged priority. - [`references/private-env-test/`](references/private-env-test/) — the Move 3 runbooks: `codespaces.md`, `azure-ml-vscode.md`, `private-vnet-checklist.md`. - [`references/non-coverage.md`](references/non-coverage.md) — the Move 4 boundary + decision-log template. - [`references/fork-runbook.md`](references/fork-runbook.md) — fork + upstream-pin + overlay-merge mechanics. - [`references/field-notes-telco-pilot.md`](references/field-notes-telco-pilot.md) — anonymized learnings from a large telco AI pilot that shaped this leg.
عرض على GitHub