Agent skill

Matterjs PR Workflow

by Luligu in Luligu/matterbridge

Sync the matter.js fork, implement and test a fix or a new feature/enhancement, format, lint, commit, push, and open a PR against matter-js/matter.js.

Apache-2.0Auto-check passedDevelopment

Install Matterjs PR Workflow

skills CLI
$ npx skills add Luligu/matterbridge --skill matterjs-pr-workflow -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Luligu/matterbridge matterjs-pr-workflow --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Luligu/matterbridge.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/matterjs-pr-workflow .claude/skills/matterjs-pr-workflow && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
matterjs-pr-workflow
GitHub stars
983
Token cost
~2.4k tokens
SKILL.md length
928 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
Apache-2.0

At a glance

Sync the matter.js fork, implement and test a fix or a new feature/enhancement, format, lint, commit, push, and open a PR against matter-js/matter.js.

  • Works in 12 steps: Sync the fork → Rebuild → Create the branch → …
  • Tasks that involve Pull requests
  • SKILL.md covers 1. Sync the fork, 2. Rebuild, 3. Create the branch and 4. Implement the change, plus 9 more sections
  • Calls git, npm and npx; reaches github.com

What it does

Matterjs PR Workflow is an agent skill from Luligu/matterbridge. Sync the matter.js fork, implement and test a fix or a new feature/enhancement, format, lint, commit, push, and open a PR against matter-js/matter.js. v.1.0.0

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests and Linting and formatting. The repository describes itself as: Matterbridge plugin manager for Matter. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Pull requests
  • Tasks that involve Linting and formatting

Example prompts

  • “/matterjs-pr-workflow”

Requirements

  • Node.js

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Sync the fork
  2. Rebuild
  3. Create the branch
  4. Implement the change
  5. Check for and add tests
  6. Prove the test actually exercises the change
  7. Run the broader test suite
  8. Format and lint — do this BEFORE committing
  9. Full build
  10. Commit
  11. Push
  12. Open the PR

What it can do on your machine

Read from SKILL.md and the folder at commit 857fd9b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • npm
    • npx
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Matterjs PR Workflow loads about 2.4k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 928 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Luligu/matterbridge at commit 857fd9b, republished under its Apache-2.0 licence (© Luligu). 928 words, ~2,415 tokens.

Download SKILL.mdSave it as .claude/skills/matterjs-pr-workflow/SKILL.md (or your agent's skills folder).
name
matterjs-pr-workflow
description
Sync the matter.js fork, implement and test a fix or a new feature/enhancement, format, lint, commit, push, and open a PR against matter-js/matter.js. v.1.0.0

Open a PR against matter.js from the local fork

Use this when a change belongs upstream in matter.js rather than in matterbridge — a bug fix found while working in matterbridge (e.g. during verify-server-endpoint-context, or any other investigation), or a new feature/enhancement the user wants added to matter.js directly.

Fork location: ../matter.js (sibling of the matterbridge repo). Remotes:

  • origin → https://github.com/Luligu/matter.js.git (the user's fork — push here, never to upstream)
  • upstream → https://github.com/matter-js/matter.js.git (read-only, the real project)

1. Sync the fork

bash
git -C ../matter.js fetch upstream
git -C ../matter.js fetch origin
git -C ../matter.js merge --ff-only upstream/main   # run from a clean main; fails loudly if origin/main has diverged
git -C ../matter.js push origin main

If the fast-forward fails, stop and reconcile with the user rather than force-pushing.

2. Rebuild

bash
cd ../matter.js && npm install   # triggers the `prepare` script (build-clean) if deps changed
npm run build                    # full monorepo build (nacho-build); should report all packages "Up to date"

3. Create the branch

bash
git -C ../matter.js checkout -b fix/<short-description> main       # bug fix
git -C ../matter.js checkout -b feat/<short-description> main      # new feature or enhancement

Branch from the freshly synced main, not from whatever branch happened to be checked out before.

4. Implement the change

  • Keep the change minimal and scoped to the actual request. For a bug fix, that means only the lines needed to correct the behavior — no incidental refactors. For a feature/enhancement, that means the smallest coherent implementation of what was asked, not a broader redesign of the surrounding code.
  • Match the target file's existing comment/casting conventions (matter.js source files do not use the Matter 1.6.0 § x.y.z comment style that matterbridge's own CLAUDE.md mandates — that's a matterbridge-only convention). Plain, spec-referencing comments (e.g. // Per § 5.2.10.21.1, ...) match existing matter.js style.
  • Cite the authoritative spec text from chip/1.6.0/specs/*.html in the matterbridge repo when verifying the correct behavior, the correct field/attribute semantics, or that a new feature matches how the spec actually defines it — don't guess status codes, constraint bounds, or field semantics either way.

5. Check for and add tests

matter.js does not always have coverage for the behavior server you're touching. Before assuming a test exists:

bash
grep -rl "<ClassOrMethodName>" ../matter.js/packages/node/test ../matter.js/support/chip-testing/test 2>/dev/null

If nothing turns up, add a test under packages/node/test/behaviors/<cluster-name>/<Name>ServerTest.ts, following an existing sibling test file for conventions:

  • Simple event/attribute behavior → model after test/behaviors/boolean-state/BooleanStateServerTest.ts (MockServerNode.createOnline() + node.add(Device, state)).
  • Feature-gated behavior needing non-default features → model after test/behaviors/window-covering/WindowCoveringServerTest.ts or test/behaviors/color-control/ColorControlServerTest.ts (SomeServer.with("Feature1", "Feature2"), MockEndpoint.createWith(...) or MockServerNode.createOnline(undefined, { device: undefined }) + node.add(CustomDevice, state)).
  • To invoke a command and inspect its response, use node.online({}, async agent => { ... }) (NOT a bare endpoint.act) so context.fabric resolves to FabricIndex.NO_FABRIC instead of undefined — behaviors that read this.context.fabric (e.g. most DoorLock commands) throw UnsupportedAccess otherwise. Get the endpoint-scoped agent via endpoint.agentFor(agent.context), then call agent.<behaviorId>.<command>(request).
  • Mandatory (M conformance) attributes without defaults must be supplied in the initial state passed to node.add(...) or endpoint construction fails during initialize() with a conformance/constraint validation error naming the exact attribute — read the error and add that attribute; don't guess the whole set up front.
  • Prefer seeding minimal existing state (e.g. a pre-existing user/record) over exercising a command's object-creation side path if that path has its own unrelated bugs that would otherwise block the test.

Run just the new test file first:

bash
cd ../matter.js/packages/node && npx matter-test esm --spec test/behaviors/<cluster-name>/<Name>ServerTest.ts

6. Prove the test actually exercises the change

Temporarily revert or comment out only the change (Edit tool, not git, so you don't lose the diff), rerun the test and confirm it fails — for a bug fix, with the expected wrong value; for a new feature, because the behavior it checks doesn't exist yet. Then reapply the change and confirm the test passes again:

bash
# revert/remove the change with Edit, then:
npx matter-test esm --spec test/behaviors/<cluster-name>/<Name>ServerTest.ts   # must fail
# reapply the change with Edit, then:
npx matter-test esm --spec test/behaviors/<cluster-name>/<Name>ServerTest.ts   # must pass

Skipping this step means the test might be passing for the wrong reason (or passing regardless of whether the change exists at all).

7. Run the broader test suite

bash
cd ../matter.js/packages/node && npx matter-test esm

Large suites (1000+ tests) commonly have a handful of pre-existing, unrelated flaky failures (timing/mDNS/session mocks). Check the failing test names — if they're unrelated to the touched cluster/behavior, note them as pre-existing rather than chasing them. Do not silently ignore a failure in the same area you touched.

Show full SKILL.md (349 more words)Show less

8. Format and lint — do this BEFORE committing

The check-and-lint CI job runs both oxfmt --check and oxlint, and fails the PR on either — including a plain manual edit that doesn't match oxfmt's line-wrapping rules (e.g. a long single-line return { ... } that oxfmt wants multi-line). Run both on every file you touched, before the first commit, not after CI catches it:

bash
cd ../matter.js && npm run format          # oxfmt, rewrites in place
npm run format-verify                      # oxfmt --check; must report "All matched files use the correct format"
npm run lint                               # oxlint --type-aware; must report no errors

If lint reports fixable issues, npm run lint-fix applies them in place — re-run npm run lint afterward to confirm nothing remains, and read any issue it can't auto-fix rather than suppressing it.

Then rerun the affected test file once more to confirm formatting/lint fixes didn't change behavior (they shouldn't, but verify anyway).

9. Full build

bash
cd ../matter.js && npm run build

Should report all packages "Up to date" with no type-check errors.

10. Commit

Match the existing commit style (git -C ../matter.js log --oneline -15 to check current convention — this repo mixes plain descriptive subjects and Conventional Commits like fix(node): ..., test(node): ..., style: ...). Stage only the intended files explicitly (never git add -A):

bash
git -C ../matter.js add <changed-source-file> <new-test-file>
git -C ../matter.js status --short   # confirm nothing unintended is staged
git -C ../matter.js commit -m "$(cat <<'EOF'
fix(node): <short description>

<why, with the spec paragraph citation if applicable>
EOF
)"

For a new feature/enhancement, use feat(node): <short description> as the subject instead, with a body explaining what it adds and, where relevant, the spec paragraph it implements.

11. Push

bash
git -C ../matter.js push origin <fix-or-feat>/<short-description>

Never push to upstream. This is an action visible outside the local environment — confirm with the user before pushing unless they've already asked for it in this conversation.

12. Open the PR

Draft title + body and show the user for approval before running gh pr create (opening a PR against an external repo is a visible, hard-to-fully-reverse action). Target matter-js/matter.js:main from Luligu:<fix-or-feat>/<short-description>:

bash
gh pr create --repo matter-js/matter.js --base main --head Luligu:<fix-or-feat>/<short-description> \
  --title "..." --body "$(cat <<'EOF'
## Summary
- ...

## Test plan
- [x] New/updated test fails without the change and passes with it
- [x] `npm run format-verify` and `npm run lint` clean
- [x] `npm run build` clean
- [x] Full package test suite run; no regressions attributable to this change
EOF
)"

Mention any out-of-scope issues found along the way (e.g. an unrelated bug the test had to work around) in a "Note for maintainers" section rather than silently fixing or silently ignoring them.

13. Verify CI

bash
gh pr checks <PR#> --repo matter-js/matter.js

Watch check-and-lint specifically first (fastest, most likely to fail on formatting or lint). If it fails on either again, repeat step 8, commit as a separate style: commit, push, and re-check — don't bundle a post-hoc format/lint fix into the original commit once it's already pushed and under review.

bash
gh run view <run-id> --repo matter-js/matter.js --job <job-id> --log | grep -iE "error|format|lint|fail"

to pull the exact failure when a check fails.

© Luligu, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/matterjs-pr-workflow of Luligu/matterbridge.

Open the folder on GitHubat commit 857fd9b

Compare with similar skills

Matterjs PR Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Matterjs PR Workflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Matterjs PR Workflow this skillLuligu/matterbridge983—~2.4kAutomated safety check: PassApache-2.0
Babysit PR To Pass CIsgl-project/sglang37k2 repos~3kAutomated safety check: PassApache-2.0
Changesetbiomejs/biome26k—~839Automated safety check: PassApache-2.0
Pre Pipeline Reviewsuperplanehq/superplane7.7k—~1.2kAutomated safety check: PassCustom licence
Lint Commit PRTresjs/tres3.8k—~1.1kAutomated safety check: PassMIT
PR Pushicebear0828/codex-proxy1.8k—~2.2kAutomated safety check: NotesCustom licence

Similar skills

  • Babysit PR To Pass CI

    sgl-project/sglang

    Start and persistently pursue a goal to babysit an SGLang pull request until selected GitHub Actions workflows pass on the latest PR head.

    37k GitHub starsUsed in 2 repos~3k tokens
    DevelopmentAuto-check passed
  • Changeset

    biomejs/biome

    Official

    A skill your agent uses when a Biome change may affect users and you must decide whether it needs a changeset, choose the release level, or create and edit .changeset/.md release-note text.

    26k GitHub stars~839 tokensUpdated today
    DevelopmentAuto-check passed
  • Pre Pipeline Review

    superplanehq/superplane

    Reviews SuperPlane code changes for correctness and reuse, then runs fast Make targets (lint, format, build) that Semaphore CI runs so easy checks do not fail in the pipeline.

    7.7k GitHub stars~1.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Lint Commit PR

    Tresjs/tres

    Lint local changes, auto-fix, conventional commit, and optionally create PR

    3.8k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • PR Push

    icebear0828/codex-proxy

    Package the current working changes into a standards-compliant codex-proxy pull request: branch hygiene, commit message linting, CHANGELOG prompt, conventional commit, push, and gh pr create against…

    1.8k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check: notes
  • PR Push

    icebear0828/codex-proxy

    Package the current working changes into a standards-compliant codex-proxy pull request: branch hygiene, commit message linting, CHANGELOG prompt, conventional commit, push, and gh pr create against…

    1.8k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check: notes

More from Luligu/matterbridge

  • Verify Agent Context

    Luligu/matterbridge

    Verify which coding agent is running and that it loaded the shared Matterbridge instructions, rules and skills from AGENTS.md and .agents/.

    983 GitHub stars~525 tokensUpdated yesterday
    Auto-check passed
  • Verify npm Alignment

    Luligu/matterbridge

    Verify that matterbridge and all Matterbridge workspace packages are aligned on the npm latest and dev tags.

    983 GitHub stars~839 tokensUpdated yesterday
    Auto-check passed
  • Verify server message endpoint context, endpoint type narrowing, plugin forwarding order, command observable emission, and Matter 1.6.0 comments on validation and state updates.

    983 GitHub stars~5.1k tokensUpdated yesterday
    Auto-check passed
  • Verify Version Alignment

    Luligu/matterbridge

    Verify that package, Docker build, test utility helper, docs update JSON files, and Docker workflow tags match the expected root version rules.

    983 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Verify Agent Context

    Luligu/matterbridge

    Verify which coding agent is running and that it loaded the shared Matterbridge instructions, rules and skills from AGENTS.md and .agents/.

    983 GitHub stars~195 tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Matterjs PR Workflow

What does Matterjs PR Workflow do?

Sync the matter.js fork, implement and test a fix or a new feature/enhancement, format, lint, commit, push, and open a PR against matter-js/matter.js. Matterjs PR Workflow is an agent skill from Luligu/matterbridge.js.

When should I use Matterjs PR Workflow?

Matterjs PR Workflow fits situations like: tasks that involve Pull requests; tasks that involve Linting and formatting.

How do I install Matterjs PR Workflow in Claude Code?

Run `npx skills add Luligu/matterbridge --skill matterjs-pr-workflow -a claude-code`. Or copy the skill folder (.agents/skills/matterjs-pr-workflow in Luligu/matterbridge) into .claude/skills/matterjs-pr-workflow in your project. Claude Code loads it when a task matches its description.

How do I install Matterjs PR Workflow in Codex?

Run `npx skills add Luligu/matterbridge --skill matterjs-pr-workflow -a codex`. Or copy the skill folder (.agents/skills/matterjs-pr-workflow in Luligu/matterbridge) into .agents/skills/matterjs-pr-workflow in your project. Codex loads it when a task matches its description.

Can I use Matterjs PR Workflow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Luligu/matterbridge --skill matterjs-pr-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/matterjs-pr-workflow, .gemini/skills/matterjs-pr-workflow, .github/skills/matterjs-pr-workflow and .opencode/skills/matterjs-pr-workflow in your project.

What does Matterjs PR Workflow need to run?

Going by SKILL.md and its folder, Matterjs PR Workflow needs the command-line tools its instructions call (git, npm, npx and gh). Our summary lists: Node.js.

Does Matterjs PR Workflow access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Matterjs PR Workflow safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Matterjs PR Workflow use?

Matterjs PR Workflow is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Matterjs PR Workflow use?

About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Matterjs PR Workflow?

Skills that share tags, products or a category with Matterjs PR Workflow: Babysit PR To Pass CI (sgl-project/sglang, 37k stars), Changeset (biomejs/biome, 26k stars), Pre Pipeline Review (superplanehq/superplane, 7.7k stars) and Lint Commit PR (Tresjs/tres, 3.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Matterjs PR Workflow?

Luligu (a GitHub user) maintains it in Luligu/matterbridge, which has 983 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 7, 2026.

Source: Luligu/matterbridge on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.