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
- community-shaders/skyrim-community-shaderstheir own version, first seen Oct 17, 2026
- DeterminateSystems/nix-srctheir own version, first seen Oct 17, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- community-shaders/skyrim-community-shaders★ 1.1ksame name
- 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.
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
- Very specific: line 28
When invoked as /upstream, your job is to:
- Very specific: line 64
Since version: If --since flag provided, assess all versions since that release
- Very specific: line 65
Dry-run mode: If --dry-run flag, generate report but skip issue creation
- Very specific: line 66
Help: If --help flag, show usage instructions
- Distinctive: line 180
Before creating issues, check for existing upstream issues:
- Distinctive: line 187
If a similar issue exists:
- Distinctive: line 188
Add a comment linking to the new assessment
- Distinctive: line 195
Create a summary issue with the full assessment:
- Very specific: line 295
When --since <version> is used:
- Distinctive: line 299
Create a batched summary issue linking all individual assessments
- Distinctive: line 300
Update baseline to latest assessed version
- Very specific: line 304
When --dry-run is specified:
- Distinctive: line 315
Baseline missing: Create default baseline, warn user
- Very specific: line 413
All created issues get needs-triage label for human review
≈ “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.
Files
<!-- sequant:local-override -->Local overrides (read this first). Before following any instruction below, check whether
.claude/.local/skills/upstream/overrides.mdexists. 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/upstreamwithout forking it —overrides.mdlives under.claude/.local/, whichsequant updateandsyncnever 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:
- Fetch Claude Code release information from the public GitHub repo
- Analyze changes against sequant's current capabilities baseline
- Detect relevant changes using keyword matching and regex patterns
- Skip out-of-scope changes (configured in baseline.json
outOfScope) - Generate a structured compatibility assessment report with Actionable and Informational sections
- 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
commandsentry in baseline.json) - 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 --helpAssessment Process
1. Parse Arguments
Parse the command arguments to determine:
- Target version: Specific version (e.g.,
v2.1.29) orlatest - Since version: If
--sinceflag provided, assess all versions since that release - Dry-run mode: If
--dry-runflag, generate report but skip issue creation - Help: If
--helpflag, 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,publishedAt3. 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:
| Category | Detection Pattern | Issue Labels |
breaking | Breaking, incompatible, must update | upstream, bug, priority:high |
deprecation | Deprecated, removed, no longer supported | upstream, bug |
new-tool | Added tool, new tool, introducing | upstream, enhancement |
hook-change | Hook, PreToolUse, PostToolUse | upstream, enhancement |
opportunity | Keywords match but not above categories | (no issue — noted in assessment for human triage) |
no-action | Doesn'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,titleIf 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
lastAssessedVersionto the assessed version
7. Multi-Version Batching
When --since <version> is used:
- List all releases after the specified version
- Assess each version individually
- Create a batched summary issue linking all individual assessments
- Update baseline to latest assessed version
Dry-Run Mode
When --dry-run is specified:
- Perform full analysis
- Generate local report
- Output what issues WOULD be created (titles, labels)
- Skip actual GitHub issue creation
- 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-triagelabel 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.
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
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.

