agentleFS
sequant-iosequant-io/sequant/.claude/skills/upstream/SKILL.md

upstream

Skill1 starsChanged 3 months agoMITView on GitHub

Monitor Claude Code releases, assess compatibility with sequant, and create issues for breaking changes and deprecations. Opportunities are noted in assessment reports for human triage.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. community-shaders/skyrim-community-shaders★ 1.1ksame name
    2. DeterminateSystems/nix-src★ 96same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository19 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 7 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    When invoked as /upstream, your job is to:

    line 28
  2. Very specific:

    Since version: If --since flag provided, assess all versions since that release

    line 64
  3. Very specific:

    Dry-run mode: If --dry-run flag, generate report but skip issue creation

    line 65
  4. Very specific:

    Help: If --help flag, show usage instructions

    line 66
  5. Distinctive:

    Before creating issues, check for existing upstream issues:

    line 180
  6. Distinctive:

    If a similar issue exists:

    line 187
  7. Distinctive:

    Add a comment linking to the new assessment

    line 188
  8. Distinctive:

    Create a summary issue with the full assessment:

    line 195
  9. Very specific:

    When --since <version> is used:

    line 295
  10. Distinctive:

    Create a batched summary issue linking all individual assessments

    line 299
  11. Distinctive:

    Update baseline to latest assessed version

    line 300
  12. Very specific:

    When --dry-run is specified:

    line 304
  13. Distinctive:

    Baseline missing: Create default baseline, warn user

    line 315
  14. Very specific:

    All created issues get needs-triage label for human review

    line 413

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md
<!-- sequant:local-override -->

Local overrides (read this first). Before following any instruction below, check whether .claude/.local/skills/upstream/overrides.md exists. If it does, read it and treat its contents as authoritative: its instructions take precedence over anything in this skill they conflict with. This is the supported way to tailor /upstream without forking it — overrides.md lives under .claude/.local/, which sequant update and sync never overwrite.

Upstream: Claude Code Release Tracking

You are the "Upstream Assessment Agent" for the sequant repository.

Purpose

When invoked as /upstream, your job is to:

  1. Fetch Claude Code release information from the public GitHub repo
  2. Analyze changes against sequant's current capabilities baseline
  3. Detect relevant changes using keyword matching and regex patterns
  4. Skip out-of-scope changes (configured in baseline.json outOfScope)
  5. Generate a structured compatibility assessment report with Actionable and Informational sections
  6. Auto-create GitHub issues for breaking changes, and for deprecations, new tools and hook changes that name something sequant uses (a tool, hook event, dependency-map key or commands entry in baseline.json)
  7. List opportunities in the assessment report for human triage (no individual issues created)

Invocation

# Analyze latest release
/upstream

# Analyze specific version
/upstream v2.1.29

# Analyze all releases since version
/upstream --since v2.1.25

# Dry-run mode (no issues created)
/upstream --dry-run

# Help
/upstream --help

Assessment Process

1. Parse Arguments

Parse the command arguments to determine:

  • Target version: Specific version (e.g., v2.1.29) or latest
  • Since version: If --since flag provided, assess all versions since that release
  • Dry-run mode: If --dry-run flag, generate report but skip issue creation
  • Help: If --help flag, show usage instructions

2. Fetch Release Data

Fetch release information from the public Claude Code repository:

# Get latest release
gh release view --repo anthropics/claude-code --json tagName,name,body,publishedAt

# Get specific version
gh release view v2.1.29 --repo anthropics/claude-code --json tagName,name,body,publishedAt

# List releases for --since support
gh release list --repo anthropics/claude-code --limit 50 --json tagName,publishedAt

3. Load Baseline

Load the sequant capabilities baseline from .sequant/upstream/baseline.json:

{
  "lastAssessedVersion": "v2.1.25",
  "tools": {
    "core": ["Task", "Bash", "Read", "Write", "Edit", "Glob", "Grep"],
    "optional": ["WebFetch", "WebSearch", "NotebookEdit"]
  },
  "hooks": {
    "used": ["PreToolUse", "PostToolUse", "SessionEnd"],
    "files": ["templates/hooks/pre-tool.sh", "templates/hooks/post-tool.sh", "templates/hooks/capture-tokens.sh", "hooks/hooks.json"]
  },
  "mcpServers": {
    "required": [],
    "optional": ["chrome-devtools", "context7", "sequential-thinking"]
  },
  "keywords": [
    "Task", "Bash", "hook", "PreToolUse", "PostToolUse", "SessionEnd",
    "MCP", "permission", "allow", "deny", "tool",
    "background", "parallel", "agent", "subagent",
    "settings", "config", "plugin"
  ],
  "dependencyMap": {
    "PreToolUse": ["templates/hooks/pre-tool.sh", "hooks/hooks.json", "templates/settings.json"],
    "PostToolUse": ["templates/hooks/post-tool.sh", "hooks/hooks.json", "templates/settings.json"],
    "SessionEnd": ["templates/hooks/capture-tokens.sh", "hooks/hooks.json", "templates/settings.json"],
    "Task": [".claude/skills/**/*.md", "src/lib/workflow/*.ts"]
  },
  "commands": ["claude plugin install", "claude plugin update", "claude plugin eval"],
  "outOfScope": [
    "PDF/document processing - users work with code and GitHub issues",
    "Slack/OAuth integrations - workflow is GitHub-centric",
    "Notebook editing - not a data science tool",
    "IDE-specific features (VSCode, JetBrains) - sequant is CLI/terminal focused",
    "Windows-specific fixes - sequant targets macOS/Linux",
    "OpenTelemetry - sequant emits and consumes no OpenTelemetry output"
  ]
}

4. Analyze Changes

For each release, analyze the changelog/release body:

Step 1: Extract Changes

Parse the release body to extract individual change items. Common formats:

  • Bullet points: - Added new feature X
  • "What's changed" sections
  • BREAKING CHANGE markers

Step 2: Relevance Detection

For each change, check if it's relevant to sequant:

// Keyword matching
const isRelevant = baseline.keywords.some(kw =>
  change.toLowerCase().includes(kw.toLowerCase())
);

// Pattern matching
const patterns = {
  newTool: /added.*tool|new.*tool|introducing/i,
  deprecation: /deprecat|remov|no longer support/i,
  breaking: /breaking|incompatible|must update/i,
  hook: /hook|PreToolUse|PostToolUse/i,
  permission: /permission|allow|deny|ask/i,
};

Step 3: Categorize

Categorize each relevant change:

CategoryDetection PatternIssue Labels
breakingBreaking, incompatible, must updateupstream, bug, priority:high
deprecationDeprecated, removed, no longer supportedupstream, bug
new-toolAdded tool, new tool, introducingupstream, enhancement
hook-changeHook, PreToolUse, PostToolUseupstream, enhancement
opportunityKeywords match but not above categories(no issue — noted in assessment for human triage)
no-actionDoesn't match patterns or keywords(no issue)

Step 4: Impact Mapping

For relevant changes, map to affected sequant files using dependencyMap. Its keys are specific identifiers (tools, hook events) matched case-sensitively in the change text, never generic keywords:

const impactFiles = baseline.dependencyMap[namedIdentifier] || [];

5. Check for Duplicates

Before creating issues, check for existing upstream issues:

# Search for similar issues
gh issue list --label upstream --search "<finding-title>" --json number,title

If a similar issue exists:

  • Add a comment linking to the new assessment
  • Skip creating a duplicate

6. Generate Outputs

Output 1: Assessment Report (GitHub Issue)

Create a summary issue with the full assessment:

## Upstream: Claude Code <version> Assessment

**Release:** [<version>](https://github.com/anthropics/claude-code/releases/tag/<version>)
**Released:** <date>
**Assessed:** <today>

### Summary

| Category | Count | Action Required |
|----------|-------|-----------------|
| Breaking Changes | N | [status] |
| New Tools | N | [status] |
| Deprecations | N | [status] |
| Opportunities | N | [status] |

### Actionable

*Breaking changes, deprecations, and other items that affect sequant.*

[list of breaking, deprecation, new-tool, hook-change findings]

### Informational

*Opportunities noted for human triage. No individual issues auto-created.*

[list of opportunity findings]

### No Action Required

[list of irrelevant changes]

---

*Generated by /upstream skill*

Output 2: Individual Issues (Actionable Findings)

Create an issue for every breaking change, and for each deprecation, new-tool or hook-change finding that is relevant: it names a tool, hook event, dependency-map key or commands entry from baseline.json (case-sensitive), or its affected files include a path that exists. Generic keywords (hook, MCP, tool, plugin) don't count. Note: Opportunities and non-relevant findings do NOT get individual issues — they stay listed in the assessment report for human triage.

## feat: Leverage <feature> from Claude Code <version>

**Upstream:** Claude Code <version>
**Category:** <category>
**Assessment:** #<assessment-issue>

### Context

<description from release notes>

### Opportunity

<how sequant could use this>

### Proposed Implementation

[To be determined during /spec phase]

### Acceptance Criteria

- [ ] AC-1: [To be defined]

---

*Auto-created by /upstream assessment #<N>*

Labels: upstream, needs-triage, enhancement

Output 3: Local Report

Save to .sequant/upstream/<version>.md:

# Claude Code <version> Assessment

Assessed: <date>
Previous: <last-assessed-version>

## Summary

[same as GitHub issue]

## Raw Findings

[detailed analysis data]

Output 4: Update Baseline

Update .sequant/upstream/baseline.json:

  • Set lastAssessedVersion to the assessed version

7. Multi-Version Batching

When --since <version> is used:

  1. List all releases after the specified version
  2. Assess each version individually
  3. Create a batched summary issue linking all individual assessments
  4. Update baseline to latest assessed version

Dry-Run Mode

When --dry-run is specified:

  1. Perform full analysis
  2. Generate local report
  3. Output what issues WOULD be created (titles, labels)
  4. Skip actual GitHub issue creation
  5. Skip baseline update

Error Handling

  • No releases found: Exit with clear message
  • Baseline missing: Create default baseline, warn user
  • GitHub API errors: Retry with backoff, then fail gracefully
  • Already assessed: Skip with message (idempotent)

Output Verification

Before completing, verify:

  • Release data successfully fetched
  • Baseline loaded (or created with defaults)
  • Each change categorized
  • Duplicates checked before issue creation
  • Assessment report created (or dry-run output shown)
  • Individual issues created for breaking changes and relevant actionable findings (not opportunities)
  • Local report saved
  • Baseline updated with new version

Examples

Example 1: Assess Latest Release

/upstream

Fetching latest Claude Code release...
Release: v2.1.29 (2025-01-31)

Loading baseline from .sequant/upstream/baseline.json...
Last assessed: v2.1.27

Analyzing 12 changes from release notes...
- 3 relevant changes detected
- 9 no-action changes

Findings:
1. [opportunity] New --background flag on Task tool
   Matched keywords: Task, background
   Impact files: .claude/skills/**/*.md

2. [hook-change] Permissions now respect content-level ask
   Matched keywords: permission
   Impact files: (none — "permission" is a generic keyword; listed, no issue)

3. [deprecation] PreToolUse field oldHookName deprecated
   Matched pattern: deprecat
   Impact files: templates/hooks/pre-tool.sh, hooks/hooks.json, templates/settings.json

Creating assessment issue...
Created: #250 - Upstream: Claude Code v2.1.29 Assessment

Creating individual issues...
Created: #251 - feat: Leverage new --background flag from Claude Code v2.1.29
Created: #252 - chore: Update to new hook name (deprecation from v2.1.29)

Saving local report to .sequant/upstream/v2.1.29.md...
Updating baseline lastAssessedVersion to v2.1.29...

Done! Assessment complete.

Example 2: Dry Run

/upstream --dry-run

[DRY RUN MODE - No issues will be created]

Fetching latest Claude Code release...
Release: v2.1.29 (2025-01-31)

...analysis...

Would create issues:
1. Assessment: Upstream: Claude Code v2.1.29 Assessment
2. Finding: feat: Leverage new --background flag from Claude Code v2.1.29
3. Finding: chore: Update to new hook name (deprecation from v2.1.29)

Local report saved: .sequant/upstream/v2.1.29.md
Baseline NOT updated (dry-run mode)

Example 3: Already Assessed

/upstream

Fetching latest Claude Code release...
Release: v2.1.29 (2025-01-31)

Already assessed: .sequant/upstream/v2.1.29.md exists
Use --force to re-assess.

No action taken.

Notes

  • This is an internal tool for sequant maintainers
  • All created issues get needs-triage label for human review
  • The skill is read-only for Claude Code repo (no PRs or edits)
  • Baseline file should be committed to version control
  • Local reports in .sequant/upstream/ should be committed

This skill monitors the upstream Claude Code project to help sequant stay current with new features and breaking changes.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.