---
name: starter
version: 1.0.0
description: "Operate Starter/Essential v1 inside Remote Dev full. Use for Starter activation, readiness, PD topology, AI/FTS, observability/dashboard, PrivateLink or SQL diagnosis, and Starter API operation lookup."
metadata:
  requires:
    bins: ["cp9"]
  cliHelp: "cp9 cmd starter.activate; cp9 cmd starter.status; cp9 cmd starter.dashboard"
---

# Starter / Essential v1

Read [`../get-started/SKILL.md`](../get-started/SKILL.md) for session routing and [`../get-started/references/safety-and-ownership.md`](../get-started/references/safety-and-ownership.md) before mutation.

Starter is an optional product capability inside Remote Dev full. Copy [`../../cp9.dev-full.remote-ec2-k3d.example.yaml`](../../cp9.dev-full.remote-ec2-k3d.example.yaml); its `starter` comments are the source of truth for eager/lazy activation, PD mode, topology, AI/FTS, and observability choices.

## Activation And Readiness

1. Require top-level `cp9 status=ready` before day-2 activation.
2. Run `bin/cp9 starter status config=cp9.yaml`.
3. If it reports `not_ready`, run `bin/cp9 starter activate config=cp9.yaml`, then recheck status. Config-driven eager activation uses the same resumable engine.
4. Accept readiness only when status proves the selected PD mode, configured/live node and TiDB-serving targets, workload-to-node-role placement, scaler and TiKV API workloads, an Available unbound keyspace, and the session-owned private SQL load balancer.

The PDMS/monolithic choice is substrate-immutable. Changing it requires complete cleanup and a fresh Session. Public SQL, import/export, or workload readiness cannot substitute for the private strict-TLS SQL path.

When observability is enabled, status must prove Prometheus targets/labels/series and both Grafana datasources. `bin/cp9 starter dashboard config=cp9.yaml local-port=3000` is a foreground localhost forward; stop it with Ctrl-C. `cp9 destroy` also removes a matching session-owned forward.

## API Reference

Use [`references/operation-map.md`](references/operation-map.md) to distinguish the management-portal and serverless-service API surfaces and select an operation, method, path, and base URL. Re-read the cited current swagger before mutation. The map is not an executable workflow.

A mutating or destructive API call requires explicit task authority, exact organization/project/resource IDs, a reviewed secret source, and pre/post read-back. Keep API keys, database passwords, connection profiles, object-store locations, Authorization headers, and raw traces out of commits and chat.

## Diagnosis

- Start with JSON `cp9 status`, `cp9 starter status`, and bounded `cp9 logs`.
- A missing/invalid/expired image pin is a release-input blocker; refresh the contract or use a reviewed source build instead of bypassing validation.
- Keep public and private SQL results separate. A rejected NLB capability is a partial private-path result, not permission to weaken TLS.
- Cross-account S3 access must trust the exact current UI and regional-manager External IDs; diagnose both before changing IAM.
- After an older Session upgrade, trust the final mode-aware status rather than inferring topology from one reconcile event.
- Kernel image changes use [`../get-started/references/change-kernel-images.md`](../get-started/references/change-kernel-images.md).

## Completion

Report activation, product, observability, and cleanup as separate facts. Final EKS, volume, Agent, and session-resource absence belongs to `cp9 destroy`, not product deletion.

## References

- [`references/operation-map.md`](references/operation-map.md)
- [`../get-started/references/dev-full-aws-runtime.md`](../get-started/references/dev-full-aws-runtime.md)
- [`../get-started/references/change-kernel-images.md`](../get-started/references/change-kernel-images.md)
