Skip to content
cccskills
FreePublished on GitHub

ramp

Area-scoped deep-dive briefing for context-switching into a JellyRock subsystem. Loads the scoped CLAUDE.md, the matching architecture topic doc, area-relevant tech-debt slugs, recent commits scoped to the area, and skills/agents that mention the area. Use when switching into `components`, `components/video`, `components/data`, `source`, `source/api`, `source/utils`, `tests`, `locale`, or `scripts` after >2 weeks not touching it, or when a sub-agent needs scoped briefing before research. Complements /catchup (which is global).

The English summary is being prepared. Showing the original description.

jellyrock/jellyrock46 stars(GitHub 46 + cccskills 0)

Run score Not tested

See how to install

Files included (1)

  • SKILL.md5.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

/ramp <area>: an area-scoped briefing

AGENTS.md's catchup-discipline rule calls for it when you come back to a subsystem after more than two weeks away. Where /catchup covers the whole repo, /ramp zooms into one subsystem's rules, recent commits and tech debt.

Inputs

The arguments name one area. The recognized areas are the folders with a scoped CLAUDE.md: components, components/video, components/data, source, source/api, source/utils, tests, locale, scripts.

With no arguments, list the recognized areas and ask which one. For an area not in the list, treat the question as cross-cutting and suggest /catchup, or the closest matching area.

Step 1: Load state through the aggregator and targeted reads

The briefing's state comes from two sources:

  1. One aggregator call. scripts/catchup-state.js with --area=<area> returns JSON: PRs and issues filtered by the area's keywords (the map below), plus the current branch's CI, pending handoffs, the full list of watched signals, recent decisions, tech-debt counts and stale docs.

    node scripts/catchup-state.js --area=<area> --pretty
    
  2. Targeted file reads for area content the aggregator doesn't carry:

    # Recent activity: the last 10 commits in the area
    git log --oneline -10 -- <area>
    
    # Scoped rules, full content
    cat <area>/CLAUDE.md 2>/dev/null
    
    # Architecture docs whose related-files name the area: find, then Read
    grep -lE "^  - <area>" docs/architecture/*.md
    
    # Area-relevant tech-debt slugs (substring match on the area keyword)
    grep -B1 -A4 "^#### " docs/architecture/tech-debt.md | grep -i -B1 -A4 "<keyword>"
    
    # Skills / agents that mention this area
    grep -l "<area>" .claude/skills/*/SKILL.md .claude/agents/*.md 2>/dev/null
    
    # Pending handoffs whose content mentions an area keyword
    grep -l "<keyword>" .claude/handoffs/*.md 2>/dev/null | head -5
    

Substitute <area> and a search keyword from this map. It copies AREA_KEYWORDS in scripts/catchup-state.js; when the two differ, the script is right.

AreaKeywords
components/videovideo|playback|player|osd|trickplay|transcode
components/datascenemanager|ContentNode|library
componentscomponent|scene|focus|navigation
source/apiapi|jellyfin|task|http|auth
source/utilsutil|helper|registry|config
sourcemigration|bootstrap|main
teststest|rooibos|spec
localetranslation|locale|i18n|en_US
scriptsbsc|plugin|lint|generate

Step 2: Compose the briefing

Output one markdown briefing that a person and a sub-agent can both read. Use plain file references and no decoration:

# Ramp briefing: <area>

## Scoped rules (auto-loaded when working in `<area>/`)

<full text of <area>/CLAUDE.md, or note "no scoped CLAUDE.md exists yet">

## Architecture topic doc

<topic-name>: [`docs/architecture/<topic>.md`](docs/architecture/<topic>.md), last reviewed YYYY-MM-DD
<a one-paragraph summary of the doc's opening section>

(If multiple topic docs match the area: list each.)

## Active tech debt for this area

- [`<slug>`](docs/architecture/tech-debt.md#<slug>): <one-line summary>
- ...

## Recent activity (last 10 commits in `<area>/`)

<git log --oneline output>

## Open issues / PRs touching this area

- Issues: #N, <title>; ...
- PRs: #N, <title> by @author; ...

## Related skills and agents

- [`/<skill>`](.claude/skills/<skill>/SKILL.md): <one-line description>
- [`<agent>`](.claude/agents/<agent>.md): <one-line description>

## Pending handoffs touching this area

- `<path>`: <skill>, <relative-time>
- (or "(none)")

## Suggested entry points

<two or three files to read first for the work likely needed; the architecture doc's `related-files:` is the strongest hint>

An empty section reads "(none)", so the shape stays the same.

Step 3: Hand off

If the briefing turns up something to act on (an open issue with traction, a tech-debt slug the user recently touched), name the next skill in a closing line: /issue-triage <N>, /tech-debt-scan (when finishing a feature in this area) or /runtime-triage (when a recent crash log is at hand).

This skill only reads. Don't edit anything: surface and summarize.

When not to use

  • Starting a fresh session: use /catchup first. /ramp is for switching areas within a session.
  • The area isn't in the recognized list: ask the user, or treat it as cross-cutting and use /catchup.
  • A specific question that doesn't need a full briefing: answer it directly.

Sub-agent invocation

To run it from a sub-agent, the parent passes Read .claude/skills/ramp/SKILL.md and follow the steps for the area <area>; report the briefing in the Agent prompt. The sub-agent treats the briefing as authoritative for that area's rules and recent state.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Session-start briefing: where did I leave off, what is in flight, what needs attention. One tested script reads git, the journal (followups, running work, cadences) and tracked projects and prints every fixed-threshold check that fires; JellyRock's own aggregator adds open PRs, high-engagement bugs, recent bug reports, current-branch CI, pending handoffs, open upstream-watch issues (Jellyfin releases and release candidates, Roku OS), recent ADRs, tech debt and architecture-doc staleness. Ends with one Suggested next move that hands off to /log, /done, /issue-triage, /runtime-triage, /ci-triage or /server-upgrade. Mandated by AGENTS.md's catchup-discipline rule: run at the start of any genuine new session, after a multi-day gap, or whenever you ask what the state of the world is.

The English summary is being prepared. Showing the original description.

jellyrock/jellyrock46Updated Oct 26, 2026

Diagnose a failed CI workflow run and fix it the /snag way. A tested read-only script fetches the run, reports every failed job and step with the log region around its errors (not the post-job cleanup), and classifies each against this repo's gates.tsv, printing the banner a gate carries when its obvious fix is the wrong one. Then: re-run only what is transient, reproduce locally, find the root cause, and show one decision screen; the chosen fix is built test-first and committed on a fix branch, never pushed. Use when a CI run failed on a pull request or on the default branch.

The English summary is being prepared. Showing the original description.

jellyrock/jellyrock46Updated Oct 26, 2026

DEPRECATED, replaced by the `enrich` phase built into /crash-report. The old flow filed crash issues first and enriched them one by one afterward. The new flow (stage, then enrich, then file) pulls the dashboard backtrace before filing, so issues are born complete and architectural-class crashes go to their epic instead of becoming standalone issues. Do not invoke it for new work: run /crash-report and paste the backtraces during its enrich step. It stays only as a redirect; the `enrich-issue` script subcommand still exists as a legacy escape hatch for a crash issue filed before the change.

The English summary is being prepared. Showing the original description.

jellyrock/jellyrock46Updated Oct 26, 2026

Process a Roku weekly crash-report CSV (or a zip holding one or more CSVs) into tracked GitHub issues and architectural-epic evidence, enriching before filing (stage, then enrich, then file). STAGE parses and filters the CSV, groups by pkg-path signature, builds each cited app version in a temporary git worktree, maps the transpiled `.brs` line back to the source `.bs` line, runs the GitHub dedup search, and writes a local worksheet where every crash starts pending; a mechanism hint (task-launch, network, other) orders which to pull first but never authorizes a file. ENRICH folds in the per-crash backtraces you paste from Roku's dashboard (a 7-day window, one click per crash, no bulk export), extracts each `&hNN` exception code, and routes every crash to a disposition (nothing files or aggregates without a backtrace): `file` (a scoped bug becomes a new per-signature [crash] issue, born enriched), `aggregate` (a known architectural class: `&h29` big-library too-many-task-threads, `&h23` render-thread execution timeouts, the `&hec` init `m.global.constants` race; upserted as one flat record comment per `file·function·line·version` onto the class epic, never a standalone issue), or `watch` (accepted noise, a spike comment only). FILE performs the GitHub writes (create, comment or reopen for scoped bugs; the epic record upsert for architectural classes) and writes a run-summary handoff. Dedup-aware and idempotent. Use when a fresh Roku crash CSV arrives (weekly). A deep dive on one crash goes to `/issue-triage <N>` after filing.

The English summary is being prepared. Showing the original description.

jellyrock/jellyrock46Updated Oct 26, 2026

Draft a GitHub issue body for the JellyRock repo from a Reddit/Discord post or free-form bug report and submit it via forge.sh. Reads the YAML form templates under .github/ISSUE_TEMPLATE/ to know which fields are required, fills them by extracting from the input, asks for any missing required fields, validates the body matches the chosen template's schema, then runs forge.sh issue create with the auto-labels the template defines. Use when you have a user report (paste from anywhere) and want to formalize it into a properly-structured GitHub issue.

The English summary is being prepared. Showing the original description.

jellyrock/jellyrock46Updated Oct 26, 2026

Walk a major dependency-version bump (a Renovate major PR, possibly a grouped one carrying several deps, or a package you name) through JellyRock's major-bump SOP so the judgment steps run the same way every time. Resolves each package and its from and to versions, fetches the upstream changelog/migration guide for that range, classifies the breaking changes, greps the codebase for the call sites those breaks actually hit, runs the mechanical gate that fits the dependency's type (a runtime BrightScript lib: validate, build, lint:bs, then test:unit and test:rta on a device; JS or Node tooling: test:scripts, then run the affected script; GitHub Actions: the PR's own CI plus a trace of the conditional paths CI doesn't exercise), and returns a go/no-go with any required migration surfaced (and applied on request). Majors never automerge (the org Renovate config), so this is the human-review path. Use when a Renovate major PR appears, or before bumping a dependency's major version by hand. Not for patch or minor bumps (those automerge after a soak) or for Jellyfin server releases (use /server-upgrade).

The English summary is being prepared. Showing the original description.

jellyrock/jellyrock46Updated Oct 26, 2026

See all skills by jellyrock

Report a problem with this skill