---
name: service-takeover
description: Use when the user wants to take over an AWS service from another team — especially when there's no documentation, no infrastructure-as-code, and only diagram images. Triggers include "service takeover", "handoff service X", "we're taking over service from team Y", "I need to onboard onto service X". Orchestrator skill that guides the operator through eight gates: intake, information audit, diagram extraction (delegates to service-discovery), live resource discovery (delegates to service-discovery), runtime profile (delegates to runtime-trace), outgoing-team interview (doc-driven async), readiness scorecard (Production Readiness Review style, evidence-backed), handoff package assembly. Produces a self-contained directory at .culiops/service-takeover/<service>/ that the receiving team can read to be operational on day one. Resumable across multi-day takeover sessions. AWS only in v1.
---
Guide an operator through the structured handoff of an AWS service from another team. Built for the worst-case takeover: no documentation, no IaC, only diagram images, and a deadline.
This skill orchestrates the operator, not other skills. When a step delegates to service-discovery or runtime-trace, the orchestrator prints the exact invocation the operator should run. The operator runs the sibling skill themselves (which preserves the sibling's own Iron Law, gate model, and IAM scope), then returns the artifact path to service-takeover, which snapshots it into the handoff package and continues.
The skill produces a self-contained handoff package at .culiops/service-takeover/<service>/:
README.md— handoff summary the receiving team reads first.state.md— workflow state (which steps ran, when, gate sign-offs).execution-plan.md— the Step 1.5 audit + plan + approval record.service-catalog.md— snapshot of theservice-discoverycatalog.runtime-profile.md— snapshot of theruntime-traceruntime profile.interview-questionnaire.md— filled-in outgoing-team interview.readiness-scorecard.md— evidence-backed Production Readiness Review scorecard.open-questions.md— consolidated open questions across all artifacts.
The receiving team gets one directory they can read to be operational on day one.
| Reference | What it informs |
|---|---|
| Site Reliability Engineering (Google) — Ch. 32 "The Evolving SRE Engagement Model" | The Production Readiness Review (PRR) pattern. Direct basis for Step 6 (readiness scorecard) and the 8-category structure (access, inventory, runtime, alerting, runbooks, deploy & rollback, dependencies, compliance). |
| Site Reliability Engineering — Ch. 6 "Monitoring Distributed Systems" | The four golden signals (traffic, latency, errors, saturation). Cross-referenced when consuming runtime-trace's activity baselines into the readiness scorecard. |
| Working Effectively with Legacy Code (Feathers) | "Characterization, not assumption." Justifies the "every readiness claim cites evidence" discipline. The skill never guesses at facts; it cites the artifact or marks the item unknown. |
| Seeking SRE (Blank-Edelman, ed.) — chapters on inheriting opaque systems | Patterns for the outgoing-team interview (Step 5) — structured, async-friendly, knowledge-transfer-oriented. |
| The DevOps Handbook (Kim, Humble, Debois, Willis) — Part IV "The Technical Practices of Feedback" | Operational ownership and the formal-handoff pattern. Justifies the readiness items around deploy paths, rollback procedures, and incident response. |
| Accelerate (Forsgren, Humble, Kim) | The four DORA metrics (deploy frequency, lead time for changes, mean time to restore, change failure rate). Frames the readiness "Deploy & Rollback" category. |
| AWS Well-Architected Framework — Operational Excellence pillar (OPS-3 through OPS-7) | The structured questions "How do you understand the health of your workload?" and "How do you mitigate deployment risks?" — direct sources for readiness items. |
| ITIL 4 — Service Transition practices | The formal-handoff framework: knowledge management, configuration management, change enablement. Justifies the handoff-package structure (catalog + profile + interview + scorecard + open questions). |
| The Pragmatic Programmer (Hunt, Thomas) — "Tracer Bullets" chapter | The thin-probe-first pattern. Justifies the information-audit gate (Step 1.5) — probe what we have, fire a thin action per gap, before committing to a full sibling-skill run. |
| Observability Engineering (Majors, Fong-Jones, Miranda) | The high-cardinality / slice-retroactively framing. Carries through from runtime-trace. |
| Step | Industry pattern | Authority |
|---|---|---|
| 1. Intake | ITIL Service Transition — Knowledge Management input | ITIL 4 |
| 1.5. Information audit | "Tracer Bullets" — thin-probe-first | Pragmatic Programmer |
| 2–3. Discovery | Characterization (applied to infrastructure) | Feathers (adapted) |
| 4. Runtime profile | Four golden signals + control-plane characterization | SRE book Ch. 6; Observability Engineering |
| 5. Interview | Async structured knowledge transfer | Seeking SRE; ITIL knowledge transfer |
| 6. Readiness | Production Readiness Review (PRR) | SRE book Ch. 32 |
| 7. Handoff package | ITIL Service Transition — configuration item handover | ITIL 4 |
NO WRITE API CALLS. EVER.
ALL CLOUD QUERIES READ-ONLY (delegated to sibling skills' own Iron Laws).
NEVER INVOKE SIBLING SKILLS PROGRAMMATICALLY. THE OPERATOR RUNS THEM.
NO COMMAND, NO QUERY, NO INTERVIEW INGESTION WITHOUT OPERATOR APPROVAL.
EVERY READINESS CLAIM MUST CITE EVIDENCE (artifact + line) OR BE MARKED MANUAL.
EVERY DELEGATED STEP CHECKS FOR EXISTING ARTIFACTS FIRST (use / verify / re-run).
OUT-OF-SCOPE ACTIONS REQUIRE FIVE-FIELD APPROVAL: WHAT / WHY / COST /
BLAST RADIUS / ALTERNATIVES. Verbal "yes" without seeing the five fields is
not approval. (Same pattern as runtime-trace and service-discovery.)
- Law 1 (no writes): inherited; transitive across delegated steps. If a sibling skill would require a write API to satisfy a step, that step is out of scope.
- Law 2 (no programmatic invocation): the orchestrator prints the exact sibling-skill invocation as instruction text for the operator. The operator runs the sibling skill, the operator confirms the artifact path, the orchestrator resumes. There is no "auto" path.
- Law 3 (evidence-backed): the readiness scorecard's value is the evidence trail. Every ✓ / ✗ either auto-marks from a cited artifact line, auto-marks from a cited interview-questionnaire answer, or carries an explicit
[manual]flag with a one-line operator note. - Law 4 (resumability): the orchestrator always reads
state.mdbefore proposing actions. It never re-runs completed steps without operator confirmation.
- Artifacts are the source of truth. Every readiness item, every handoff-package claim, every action in the audit trail must trace to either: (a) a prior-step artifact (catalog, runtime profile, interview), (b) an operator's explicit manual mark, or (c) an out-of-scope acknowledgement.
- No assumptions. When an artifact is missing, the relevant readiness items are marked
?(unknown), not auto-passed. - Strict scope per run. One service, one AWS account, one primary region. Multi-account is out-of-scope for the v1 orchestrator (sibling skills handle their own per-run scope).
- No secrets, ever. Inherited from
service-discoveryandruntime-trace— secret-shaped values are never read from any source. The interview questionnaire records references to secrets (where they live, who owns them), never values. - Read-only IAM only. No IAM policy is required by
service-takeoveritself beyond what sibling skills require. The skill never asks for write perms. - Operator confirmation at every gate. Eight gates (matching the eight steps). None are optional.
- Sibling skill artifacts are consumed read-only.
service-takeovernever modifies the catalog or runtime profile — it reads them, snapshots them into the handoff package, and cites them. - Out-of-scope actions require five-field approval. Same pattern as
runtime-trace. - Evidence citations in the readiness scorecard. Every auto-marked item carries a
[evidence: <path>:<line>]citation. No bare ✓ or ✗ without provenance.
| Thought | Reality |
|---|---|
| "service-discovery already ran in this repo, I'll just use the catalog without asking" | STOP — Step 1.5 checks the catalog's timestamp and presents the operator with use/verify/re-run. Auto-consumption without explicit confirmation is forbidden. |
| "I'll just invoke runtime-trace directly from this skill, it'll be faster" | STOP — programmatic sibling invocation is forbidden by the Iron Law. Print the invocation, wait for the operator. |
| "The interview section on SLOs is empty, I'll mark it 'no SLOs defined'" | STOP — empty means unknown, not negative. Mark ? and surface as an open question. |
| "This readiness item is obviously true; I'll auto-pass it without citation" | STOP — every auto-mark requires an evidence citation. If no citation exists, the item is [manual]. |
| "The catalog says no alerting; the runtime profile doesn't disagree; I'll auto-fail the alerting items" | STOP — absence of evidence is not evidence. Mark ? and ask the operator. |
| "The operator said 'continue' earlier; I'll skip the next gate" | STOP — each gate is its own confirmation. Earlier "yes" never carries forward. |
| "This out-of-region resource isn't in scope, I'll filter it out" | STOP — every Resource Explorer finding makes it into the handoff. Filtering creates blind spots. |
| "The operator approved the execution plan at Step 1.5; I'll run all delegated steps without re-confirming" | STOP — the plan approval authorizes what will be proposed at each step, not the steps themselves. Each delegated step still re-prints the exact invocation and gets approval. |
| "I'll generate a runbook section from the runtime profile's idle-suspect callout" | STOP — service-takeover does not generate runbooks. Runbook items go in the interview as questions; if no runbook exists, the readiness scorecard flags the gap. |
| "The handoff package is large, I'll symlink the catalog instead of copying" | STOP — package must be self-contained. Copy, never symlink. |
Eight gates, none optional, each requires explicit operator confirmation.
Gate 1: Intake → scoping primitives, intent, audience, available materials
Gate 1.5: Information audit → inventory have/need, propose action per gap, approve plan
Gate 2: Diagram extraction → delegate to service-discovery (real-discovery mode, images)
Gate 3: Live discovery → delegate to service-discovery (real-discovery mode, AWS CLI)
Gate 4: Runtime profile → delegate to runtime-trace
Gate 5: Interview → emit questionnaire; operator fills async; skill ingests
Gate 6: Readiness scorecard → auto-mark from artifacts + operator overrides on gaps
Gate 7: Handoff package → assemble README + snapshots + interview + scorecard
(the final write step; package is committed-or-not by operator)
Skill prompts for and the operator supplies:
- Service name (free text, used in output directory).
- AWS account ID + primary region.
- Intent category (structured):
takeoveris the default and primary use case. Other categories (drift-check,post-incident,pre-cost-opt) are valid invocation triggers but produce a leaner output (smaller scorecard, no full interview). - Intent context (free text, mandatory): why this run, when the handoff is scheduled, who it's for.
- Available materials: which inputs the operator already has:
- Diagram images (paths)
- IaC repo (path, if any — usually none in takeover scenarios)
- Existing
service-discoverycatalog (path, if any) - Existing
runtime-traceruntime profile (path, if any) - Outgoing team contact info (free text, for the interview header)
- Outgoing team (free text): which team is handing off, primary contact person.
- Incoming team (free text): who the receiver is — appears in the handoff README.
If the operator is re-invoking on an existing <service> (state file exists at .culiops/service-takeover/<service>/state.md), the skill reads the state file first and resumes from the current step. Re-invocation skips intake fields that were captured in the initial run unless the operator explicitly resets them.
The new gate, sitting between intake and the first delegated step. Without this gate, the orchestrator would blindly run sibling skills even when their artifacts already exist or when targeted CLI commands would suffice.
Skill produces .culiops/service-takeover/<service>/execution-plan.md with a table:
| Need | What we have | Gap | Proposed action | Cost | Approval |
|---|---|---|---|---|---|
| Architecture understanding | 2 diagram PNGs at <path> |
— | none — proceed to Step 2 | $0 | auto |
| Resource enumeration from IaC | none | full | none — IaC unavailable; will use real-discovery in Step 3 | $0 | auto |
| Live resource enumeration | none | full | run service-discovery real-discovery mode |
$0 (read-only) | needed |
| Cross-region inventory | none | full | covered by runtime-trace (Resource Explorer) | $0 | covered |
| Activity baseline | none | full | run runtime-trace |
~$0.05 | needed |
| CloudTrail availability | unknown | unknown | run aws cloudtrail describe-trails --region us-east-1 to probe |
$0 | needed |
| Tag scoping | tag service=payments supplied |
— | proceed | $0 | auto |
| Existing service-discovery catalog | none | full | covered above | — | — |
| Existing runtime-trace profile | none | full | covered above | — | — |
Action types the orchestrator may propose:
- Run a sibling skill — full invocation, operator runs the sibling, brings the artifact path back. Skill prints the exact invocation string.
- Run a targeted CLI command — specific read-only AWS CLI calls when the gap is small enough that a full sibling run is overkill (e.g., one capability probe). Skill emits the exact
awscommand; operator pastes the output back; skill ingests. - Manual operator input — for tribal-knowledge gaps no CLI can fill (e.g., "who owns this service today?"). Captured in the interview questionnaire.
- Accept the gap — explicitly mark unavailable; the readiness scorecard flags it.
- Use existing artifact — sub-options: use as-is / use with thin-verify re-scan / fresh re-run. Old artifact renamed with timestamp suffix on re-run (never deleted).
The operator approves the plan as a whole. Once approved, the plan becomes the authoritative source for what will happen at Steps 2–4. Operator can return to this gate later (re-invocation re-prints the plan) if priorities change.
Auto-approval rule: rows tagged auto proceed without explicit confirmation because they represent "we already have this; no action." Rows tagged needed require approval. Rows tagged covered are auto-approved as a side effect of approving their covering row.
If the execution plan included diagram extraction:
- Skill prints the exact
service-discoveryinvocation, including all flags and the expected scoping primitive. - Operator runs
service-discoveryin real-discovery mode against the supplied diagrams. - When complete, operator provides the catalog path back to
service-takeover. - Skill validates the path exists and is a
service-discoverycatalog (checks for required frontmatter). - Skill copies the catalog into the takeover directory as a snapshot:
.culiops/service-takeover/<service>/service-catalog.md(the snapshot is read-only afterwards). - State file updated.
If existing-artifact branch was selected at Step 1.5, this step verifies the artifact path and snapshots it (with optional thin re-scan if "verify" was chosen).
If the execution plan included live discovery (almost always true in takeover scenarios):
- Skill prints the exact
service-discoveryinvocation for the live-discovery pass (typically distinct from the diagram pass — different inputs, same tool). - Operator runs it.
- Skill validates and snapshots the live-discovery catalog (may be merged with the diagram catalog by
service-discoveryitself; orchestrator does not merge). - State file updated.
Some takeover scenarios skip Step 2 (no diagrams supplied) and go straight to Step 3. Some skip Step 3 (offline catalog already exists). Both are valid paths through the orchestrator.
- Skill prints the exact
runtime-traceinvocation with the agreed scoping primitive, intent category (alwaystakeoverwhen invoked from this skill unless operator overrode at Step 1), and the--redactflag IF the operator indicated the handoff package may be shared externally. - Operator runs
runtime-traceend-to-end (which has its own 6 gates). - When complete, operator provides the runtime-profile path back.
- Skill snapshots
<service>-runtime-profile.mdinto the takeover directory. - State file updated.
Doc-driven async interview. The skill emits a structured questionnaire markdown; the operator (and/or the outgoing team) fills it in offline; the skill ingests the filled version.
Skill creates .culiops/service-takeover/<service>/interview-questionnaire.md from a v1 template covering eleven sections:
- Service overview — name, business purpose, criticality tier, age, why it exists.
- People & ownership — current owners, on-call schedule, escalation contacts, related teams.
- SLOs / SLIs — defined? measured? error budget tracked? where are dashboards?
- Deploy process — how does code/config reach prod? deploy frequency? rollback procedure? deploy permissions?
- Alerting & on-call — what's monitored? who pages? known noisy alerts? link to top runbooks if any exist.
- Runbooks & incidents — list of existing runbooks (paths/links), incidents in last 12 months, post-mortems if any.
- Known landmines — fragile components, "do not touch on Friday" things, undocumented quirks.
- Dependencies — upstream callers (with contacts), downstream services (with SLAs/contracts), external APIs and their owners.
- Secrets & credentials — where are secrets stored, who owns rotation, what services have access (references only, never values).
- Compliance, data & disaster recovery — PII handling, data retention policy, backup strategy and last test date, DR plan and RTO/RPO, regulatory constraints (SOC2 / HIPAA / GDPR if applicable).
- Roadmap & open work — pending changes, in-flight projects, known tech debt, deprecation plans.
Each section has prefilled probing questions with empty answer slots and an explicit _To be filled in: ___ marker. The questionnaire header includes the outgoing-team contact info, the handoff date, and a one-paragraph context explaining what the interview is for (so the outgoing team can fill it in async without a meeting).
When the operator has the filled-in questionnaire, they return to service-takeover and tell it "interview ready at <path>" (default path is the emit location, but operator can supply a different path if they renamed/moved it).
Skill ingests:
- Parses the markdown by section headings.
- For each section, classifies completion:
complete(all probing questions have non-trivial answers),partial(some answers missing or markedunknown/TBD),empty(no answers). - Records completion status to
state.md. - Surfaces partial/empty sections to the operator as a summary table. Operator decides per-section: accept-as-is (will surface in readiness scorecard as gaps) or return-to-outgoing-team (operator goes back to step 5a and re-emits with the current partial answers preserved).
- Snapshots the filled questionnaire into the takeover directory (the file IS already in the takeover directory by convention, so this is effectively just a state marker).
The skill never asks for follow-up answers itself — the source of this knowledge is the outgoing team, not the operator typing in chat.
Auto-mark from prior artifacts; operator overrides on gaps. The output is .culiops/service-takeover/<service>/readiness-scorecard.md.
| Category | Items |
|---|---|
| Access | (1) operator has IAM read in target account; (2) deploy role identified; (3) console+CLI access verified |
| Inventory | (4) resources enumerated; (5) cross-region footprint known; (6) secrets/credentials references catalogued |
| Runtime | (7) activity baseline captured; (8) deploy events history captured; (9) principals touching service enumerated |
| Alerting | (10) critical metrics have alarms; (11) on-call rotation configured; (12) paging path verified |
| Runbooks | (13) top-5 symptom→action runbooks exist; (14) recent incidents documented |
| Deploy & Rollback | (15) CI/CD access; (16) deploy process documented; (17) rollback path documented; (18) deploy frequency known (DORA) |
| Dependencies | (19) upstream callers identified; (20) downstream services identified; (21) external API ownership known |
| Compliance | (22) PII handling known; (23) data retention policy known; (24) backup strategy verified; (25) DR plan exists |
Each item is marked ✓ (pass), ✗ (fail), or ? (unknown) with an evidence citation:
- Items 1–3 (Access): Auto-mark ✓ if Step 1.5's execution plan recorded successful AWS access; otherwise ?.
- Items 4–6 (Inventory): Auto-mark from
service-catalog.md. Item 4 ✓ if catalog has ≥1 resource. Item 5 ✓ if catalog includes cross-region data from runtime-trace's Resource Explorer pass. Item 6 ✓ if catalog has a secrets-references section (perservice-discovery's spec — secrets are recorded as refs, never values). - Items 7–9 (Runtime): Auto-mark from
runtime-profile.md. Item 7 ✓ if runtime profile has the Activity Baselines section with at least one resource. Item 8 ✓ if Control-Plane Activity has at least one event. Item 9 ✓ if "principals touching this service" table has at least one row. - Items 10–25 (Alerting through Compliance): Auto-mark from
interview-questionnaire.mdfilled sections. Each item has a designated questionnaire section; if the section's answers contain affirmative responses to specific probing questions, auto-mark ✓. If section is partial or empty, mark?and prompt operator. If section explicitly states "no runbooks exist" / "no DR plan" / etc., auto-mark ✗.
Items that cannot be auto-marked from any artifact stay ? and require operator manual mark with a one-line note ([manual] flag). Examples: "rollback path tested in last 90 days" — no artifact can prove this; operator must attest.
# Readiness Scorecard — <service>
## Verdict
- Overall: <ready / not-ready / partial> based on category-level pass rates.
- Critical gaps: <list of ✗ or ? items in high-criticality categories>.
## Per-category summary
| Category | Pass | Fail | Unknown | Verdict |
|---|---|---|---|---|
## Per-item detail
For each of 25 items:
| # | Item | Mark | Evidence | Operator note |
|---|---|---|---|---|
## Open questions (auto-extracted from ? items)
- (e.g., "Rollback path: not yet verified — operator to test before sign-off")
## Manual override log
- For each ? → ✓ or ✗ override by operator, record: timestamp, item #, note.Operator may supply .culiops/service-takeover/<service>/extra-checklist.md with additional items, parsed and merged into the scorecard alongside the baseline. The baseline file is never modified by extras — they coexist as a separate section in the output ("Operator-supplied extras").
The final assembly step. Outputs:
.culiops/service-takeover/<service>/
├── README.md ← the handoff summary (TL;DR + index + open questions)
├── state.md ← workflow state (which steps ran, when, paths, gate sign-offs)
├── execution-plan.md ← Step 1.5 output (the audit + plan + operator approval)
├── service-catalog.md ← COPY (snapshot) of the service-discovery catalog
├── runtime-profile.md ← COPY (snapshot) of the runtime-trace profile
├── interview-questionnaire.md ← filled-in interview (Step 5)
├── readiness-scorecard.md ← Step 6 output
└── open-questions.md ← consolidated open questions across all artifacts
Self-contained 1–2 page summary; the receiving team should be able to read just this file and know what to do next.
# Service Takeover — <service>
## TL;DR
- Handoff date: <date>
- From: <outgoing team>
- To: <incoming team>
- Readiness verdict: <ready / not-ready / partial>
- Top 5 open questions:
1. ...
## What this package contains
- service-catalog.md — what resources exist
- runtime-profile.md — what's actually running, billing, and being called
- interview-questionnaire.md — tribal knowledge from <outgoing team>
- readiness-scorecard.md — Production Readiness Review results
- open-questions.md — every unresolved item, prioritized
## First-day actions for <incoming team>
- Read readiness-scorecard.md verdict and gaps
- Schedule follow-up with <outgoing-team contact> on top 3 open questions
- Verify console + CLI access in account <id>
- Subscribe to existing alerts (see runbook section of catalog)
## Standards this package follows
- Production Readiness Review (PRR) — SRE book Ch. 32
- Four golden signals — SRE book Ch. 6
- ITIL 4 Service Transition framework
- AWS Well-Architected Operational Excellence pillarEvery "open question" callout across the catalog, runtime profile, interview, and scorecard, deduplicated and prioritized:
# Open Questions — <service>
## High priority (blocks operational readiness)
- (from readiness scorecard) Rollback path not verified — operator to test.
- (from runtime profile) Deploy role `arn:...` is shared with which other services?
- (from interview, partial) DR plan section empty — needs outgoing-team follow-up.
## Medium priority (clarifies operational understanding)
- ...
## Low priority (nice to know)
- ...Maintained throughout the run, finalized at Gate 7:
# Service Takeover State — <service>
## Run identity
- Service: <name>
- Account: <id>, region: <region>
- Operator: <IAM principal>
- Initiated: <timestamp>
- Last updated: <timestamp>
## Step status
| Step | Status | Started | Completed | Artifact | Gate approval |
|---|---|---|---|---|---|
| 1 | done | <ts> | <ts> | — | <operator>, <ts> |
| 1.5 | done | <ts> | <ts> | execution-plan.md | <operator>, <ts> |
| 2 | done | <ts> | <ts> | service-catalog.md (snapshot) | <operator>, <ts> |
...
## Audit trail
For each gate approval, each delegated-skill instruction issued, each CLI command emitted:
- Timestamp, action, operator confirmation.service-takeover-version: <x.y.z>instate.mdfrontmatter.handoff-package-schema: 1at the top ofREADME.md(bumped on breaking structural changes).- Each snapshot retains the source artifact's schema version in its own frontmatter (we copy the file as-is, so the catalog snapshot keeps
service-discovery-schema: N, the runtime profile snapshot keepsruntime-profile-schema: 1).
After writing all files, the skill prints:
Handoff package complete at
.culiops/service-takeover/<service>/. To make this part of the receiving team's repo, commit the directory. The skill does NOT auto-commit. Recommended commit message:service-takeover: handoff package for <service> from <outgoing-team>.
Re-invoking service-takeover on an existing <service> (state file exists):
- Skill reads
state.mdfirst. - Prints current state: which steps are
done,in_progress,pending. - Asks operator: resume from current step, jump to a specific step, or restart entirely (restart preserves prior artifacts with timestamp suffixes — never deletes).
- From the chosen step, runs the normal gate flow.
This means a takeover can span weeks. Day 1: intake, audit, run service-discovery. Day 4: come back, run runtime-trace. Day 10: emit interview questionnaire. Day 14: ingest filled interview, run readiness, assemble package.
The skill never silently picks up where it left off — operator always confirms the resume point.
skills/service-takeover/
├── SKILL.md ← main skill definition; References + workflow-to-standards mapping at top
├── templates/
│ ├── interview-questionnaire.md ← v1 questionnaire template (9 sections)
│ ├── readiness-scorecard-baseline.md ← 25-item baseline checklist with auto-mark rules
│ └── handoff-readme-template.md ← README.md template for the handoff package
└── examples/
├── execution-plan-example.md ← example Step 1.5 output
└── auto-mark-rules.md ← per-item auto-mark logic reference
No examples/aws/ directory — service-takeover doesn't have per-resource definitions of its own. Resource type coverage is inherited from service-discovery (cloud-agnostic) and runtime-trace (per-AWS-resource).
Fixtures for testing live under tests/fixtures/service-takeover/<scenario>/. See Testing below.
Three layers, ordered by build effort:
-
Fixture-driven dry-runs. Each scenario under
tests/fixtures/service-takeover/<name>/includes:input.md— intake values + available materials.mock-artifacts/— simulated outputs from sibling skills (a fakeservice-discoverycatalog, a fakeruntime-traceprofile).filled-interview.md— a filled-in questionnaire.expected-handoff/— expected contents of the final handoff package directory.DRY-RUN-NOTES.md— gate-by-gate simulated execution trace.
-
Live smoke test against a real personal-sandbox service. Optional, manual, pre-release. Costs sibling skills' costs (under $0.10).
-
Negative-case fixtures:
partial-interview— operator chose to proceed despite empty SLO/DR sections; verify readiness scorecard correctly marks them as?.existing-stale-catalog— execution plan offers verify path; operator chooses re-run; old catalog preserved with timestamp.runtime-trace-skipped— operator chose to skip runtime-trace (e.g., account doesn't allow it); scorecard's Runtime category goes to?.interactive-resume— Day 1 stops at Step 3; Day 7 re-invokes; state file resumes from Step 4.
- Skill version in this file's frontmatter (
service-takeover-version). state.mdcarries the skill version at the top of its frontmatter, stamped at run start.- Handoff package's
README.mddeclareshandoff-package-schema: 1at the top. Bumped only on breaking structural changes (e.g., renamingreadiness-scorecard.mdto a different filename, or restructuring the README sections such that downstream parsers break). - Snapshots retain the source artifact's own schema version in their frontmatter —
service-catalog.mdkeepsservice-discovery-schema: <N>,runtime-profile.mdkeepsruntime-profile-schema: 1. The orchestrator never rewrites snapshot frontmatter.
Documented explicitly so future maintainers don't extend the skill into these areas without a fresh design pass:
- Programmatic sibling-skill invocation. Skill orchestrates the operator, not other skills.
- Cost recommendations. Downstream
cloud-cost-investigate, operator-invoked. - IaC generation / state import.
- Multi-cloud. AWS-only for v1.
- Multi-account. Single account per run.
- Auto-commit. Operator decides.
- Sign-off automation. Skill produces evidence; the "done" judgment is the operator's.
- Custom auto-mark rules. v1 ships fixed rules. If a team needs different rules, they fork the template; the skill does not load arbitrary user-supplied rule files.
- Real-time interview (interactive chat-based Q&A with the operator typing answers). The interview is async by design — the source is the outgoing team, not the operator.