gjc-sdk-discover · git:20260922.fc1f7a1 · 2026-09-22 · sha256 d5d2845329160539
gjc-sdk-discover git:20260922.fc1f7a1A
Immutable. This exact content is served forever at /api/v1/blob/d5d2845329160539.
--- name: gjc-sdk-discover description: Discover and inspect trusted local GJC sessions through the broker-bound session CLI. --- # GJC SDK session discovery Use this skill when an external agent needs to find or inspect local GJC sessions without terminal scraping, MCP, or coordinator delegation. ## Required behavior 1. Resolve the repository root explicitly. 2. Run `gjc sdk session list --json` with that repository as the working directory and consume only its credential-free Broker DTO. 3. Select an exact session ID from that DTO, then use `gjc sdk session inspect <sessionId> --json` or the fixed raw-query commands below. 4. Fail closed for missing, unavailable, stale, dead, unknown, or ambiguous Broker results. 5. Never scan `.gjc/state/sdk`, parse endpoint records, read credentials, or open a raw per-session WebSocket. 6. Add `--json` explicitly to every machine CLI call: successful session JSON is unchanged, but default ordinary failures are text on stderr. Consume the single `gjc.command-error` version 1 stdout envelope on nonzero exit; never treat missing JSON as success or publish raw stderr. Usage exits 2; operation failures exit 1. ## Core inspection recipe Compose this task-required pull-based view in order with `gjc sdk session raw query <sessionId> --query <query> --json`: 1. `session.metadata` 2. `context.get` 3. `goal.list/get` 4. `todo.list` 5. `workflow.gates.list` 6. `session.stats` Fetch transcript pages and diffs only when the user's task requires them: - `transcript.list` and `transcript.body` - `diff.list_files`, `diff.list_hunks`, and `diff.read_hunk` The reads are not an atomic snapshot. For every reported field, identify its source query and classify it as `confirmed`, `inferred`, `stale`, `unavailable`, or `unknown`. Preserve partial results when independent queries succeed; never invent a missing value. ## Bounded discovery and failure evidence Use inert local help, for example `gjc sdk session raw query --help --json`. Sections are `overview|usage|children|arguments|options|examples|recovery`; `--help-section <section> --help-page <N>` selects a page (default overview/1). Follow returned `next.argv` with `--help-revision <sha256>` and `--json` intact. `-h` is supported, `--help=json` is not; selectors require actual help, no repeats and positive decimal safe-integer pages. Values and `--` cannot activate help. Help lists only the local node/immediate children and performs no probes. Help, ordinary errors and evidence pages are each at most 8192 UTF-8 bytes; this does not bound or paginate successful query bodies. Preserve safe complete references and outcome certainty. An uncertain result never proves non-execution. Do not add probes or automatic retries/restarts/kills just to produce guidance; never suggest `gjc daemon restart sdk` (daemon kinds are telegram/discord/slack). Only when a failure advertises a verified retained continuation, retrieve it at `gjc sdk` (or its original `gjc daemon` family) with `--error-ref <id>` and `--error-sha256 <digest>`, optional `--error-page <N>` and `--error-agent-dir <dir>`, plus `--json`. Use the returned argv, not placeholders. Root retrieval is exclusive with help/operations; it never scans other roots or reruns an operation. Retention is exactly 24 hours, non-sliding: at most 64 committed records, 1 MiB each and 16 MiB aggregate, plus one 1 MiB pending file and one 4096-byte lock. Help/success does not initialize this store. Disk, permissions, quota or publication failure may yield `complete: false`, `evidence.status: "unavailable"`, `continuation: null`; preserve the original certainty and warn against blind replay. Never fabricate a locator or promise lossless retrieval without successful publication and an unexpired record. Reassemble base64 fragments by contiguous byte offsets and verify length/SHA256 before decoding UTF-8/JSON. A fragment is not executable; text help's escaped JSON display literals are not shell argv. ## Broker-bound references - [SDK session CLI](../../../docs/sdk-session-cli.md) - Canonical templates: `gjc-sdk-author/templates/direct-sdk.ts` and `direct-sdk.py`