AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Cortex Takeoff

skill-xbluesky-cortexes-cortex-takeoff · by XBlueSky

>

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-xbluesky-cortexes-cortex-takeoff

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-xbluesky-cortexes-cortex-takeoff)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
5d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Cortex Takeoff? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Cortex Takeoff — Session Hand-off Baton

A baton is a curated continuation note for ONE work line (topic) in ONE repo. It lives at /.takeoff//.md, is git-ignored, and is consumed by a later session. A repo may hold several batons at once — one per work line. Batons are independent of the Raw session dump (which SessionEnd writes automatically). Do NOT commit them, distill them, broadcast them, index them with cortex-vec, or log them to log.md.

Legacy layout: /.takeoff/.md (single-baton era, no topic key). Legacy batons still list, resume, and clear (via --legacy), and are retired to the new layout on their next hand-off. Never create new ones.

Locating takeoff.sh

The repo slug and git-safety are handled by takeoff.sh, bundled in this plugin at hooks/scripts/takeoff.sh. In every mode below, FIRST set TK to that helper, resolved relative to THIS skill's base directory. The skill-load message announces the base directory as /cortex//skills/cortex-takeoff; takeoff.sh sits two levels up. Substitute the actual announced base-dir path:

TK="/../../hooks/scripts/takeoff.sh"
test -f "$TK" || { echo "cortex: takeoff.sh not found at $TK" >&2; exit 1; }

Do NOT use claude plugin root (no such subcommand) or $CLAUDE_PLUGIN_ROOT (unset for skill-run bash).

Resolving the repo root

Every bash "$TK" … call takes an EXPLICIT cwd argument — there is no $PWD fallback (a drifted shell cwd once deleted the wrong repo's baton). Resolve the repo root ONCE per mode and reuse it verbatim in every call:

cwd="$(git rev-parse --show-toplevel)"

If your shell may have cd'ed to another repo earlier in the session, resolve from a path you KNOW belongs to this repo (e.g. a file you have been editing) instead of trusting the shell's current directory.

Mode

Determined by the command argument:

| Argument | Mode | |----------|------| | (none) or ` | **create** — write/overwrite one work line's baton | | resume [topic] | **resume** — load a baton (do not delete) | | done [topic]` | done — clear a baton (soft-delete to trash) |

Create (/cortex:takeoff [topic])

  1. Set TK, resolve cwd, then survey the existing work lines:

``bash bash "$TK" list "$cwd" ``

Output: one baton per line, topicsummarypath, newest first.

  1. Decide the topic — kebab-case [a-z0-9-], max 64 chars, not

resume/done/legacy:

  • The user passed one explicitly → use it verbatim.
  • This session earlier RESUMED a baton → reuse that topic. A continuation

is the same work line; do not mint a new name. (Hard rule.)

  • Otherwise: if a listed baton is clearly this same work line, propose

reusing its topic; else derive a short new topic from the work line and ANNOUNCE it to the user before writing.

  1. Run the preflight (git-safety; also derives the slug):

``bash bash "$TK" prepare "$cwd" "" ``

Output is TWO lines: line 1 = baton_path, line 2 = workdir. If it exits non-zero, STOP and relay the message — do not write anything. (Exit 2 = no vault / no repo; exit 3 = .takeoff/ not git-ignored; exit 64 = invalid topic.)

  1. Curate the current session into a hand-off. Content is free-form — write

whatever genuinely lets a fresh session continue without re-deriving context. Typically worth capturing: the goal, what's done so far, the immediate next step, key files and locations (path:line), open questions, and gotchas. Omit anything not useful; do not pad to a template.

  1. Compose one summary line (used verbatim as the SessionStart menu preview):

a single sentence naming the work line and the next step.

  1. Write the baton to baton_path with the Write tool. workdir is line 2

of the prepare output, verbatim — do NOT re-derive it yourself:

```markdown --- repo: topic: workdir: created: summary: ---

```

If a baton already exists for this (repo, topic), this overwrites it (one active baton per work line, new replaces old).

  1. If this work line previously lived in the legacy single-baton file (you

resumed from topic legacy, or list shows a legacy entry that is this same line), retire it now that the new-format baton exists:

``bash bash "$TK" clear "$cwd" --legacy ``

  1. Confirm to the user: baton written to `, topic `,

not committed.

Resume (resume [topic], or chosen from the SessionStart menu)

  1. Set TK, resolve cwd, run bash "$TK" list "$cwd".
  2. No batons → tell the user there is nothing pending for this repo and stop.
  3. Pick the target: the explicit / menu-chosen topic if given; a single

listed baton is used directly; multiple batons with no topic given → show the list (topic + summary) and ask which one.

  1. Read the baton in full (path from the list output) and adopt it as

continuation context. REMEMBER the resumed topic for the rest of the session — it is the default target of a later create or done.

  1. Do NOT delete it — loading is not completion; this session may itself

need to hand off again.

Done (done [topic])

  1. Set TK, resolve cwd. Determine the target: the explicit topic if

given, else the topic this session resumed. Neither exists → REFUSE to guess: run bash "$TK" list "$cwd", show it, and ask the user to name the target.

  1. Clear it (use --legacy in place of the topic when the target is the

legacy baton):

``bash bash "$TK" clear "$cwd" "" ``

Exit 4 = the baton belongs to a different working directory (its workdir does not match this repo's toplevel). Relay both paths to the user and let THEM decide — never retry with --force on your own. Exit 5 = no such baton; re-run list and re-check the target.

  1. Confirm to the user: the baton was moved to the trash path printed by the

command (recoverable for 30 days, then pruned).

Overwrite vs done

  • Re-running create replaces that topic's baton (normal re-hand-off).
  • done is the explicit "this work line is finished" exit — the baton is

soft-deleted into /.takeoff/.trash/ and pruned after 30 days.

  • Merely loading via resume never clears anything.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.