Skip to content
Agentmart
Submit a tool

use-bms

Build and drive the yaBMS `c/bms` CLI on Linux — expand a Bashicu Matrix by a bracket, check whether a matrix is standard, compare two matrices, and search…

Skill by koteitan

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/koteitan-use-bms

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Build and drive the yaBMS `c/bms` CLI on Linux — expand a Bashicu Matrix by a bracket, check whether a matrix is standard, compare two matrices, and search for expansion loops, across BMS versions 4 / 3.3 / 2 / 1.1 / DBMS. Use whenever a task involves expanding, comparing, standard-checking, or loop-hunting Bashicu Matrices, or asks to run yaBMS.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/use-bms

What's inside

Skill name
use-bms
Description
Build and drive the yaBMS `c/bms` CLI on Linux — expand a Bashicu Matrix by a bracket, check whether a matrix is standard, compare two matrices, and search for expansion loops, across BMS versions 4 / 3.3 / 2 / 1.1 / DBMS. Use whenever a task involves expanding, comparing, standard-checking, or loop-hunting Bashicu Matrices, or asks to run yaBMS.
License
MIT
Instructions
190 lines in SKILL.md · view on GitHub

Files (3)

  • README-ja.md
  • README.md
  • SKILL.md

SKILL.md (first lines)

[← Back](../../README.md) | [English](README.md) | [Japanese](README-ja.md)

# use-bms

Drive the `bms` C command in `c/` of the yaBMS repository. Target: Linux (also
WSL). The MCP server in `mcp/` is a separate, optional path — do not use it for
these tasks.

## Locate the repository

All paths below are relative to a yaBMS checkout. Find it in this order:

1. the current working directory, if it contains `c/bms.c`;
2. `~/code/yaBMS`;
3. otherwise clone it — `git clone https://github.com/koteitan/yaBMS.git`.

This skill is mirrored in `~/my-skills`, so it may be active outside the yaBMS
tree. Never assume the skill directory sits inside the checkout.

## Build first

`bms` is not committed; it must be compiled before any use.

```bash
cd <repo>/c
make            # gcc -O0 -g -std=c99 -o bms bms.c
```

Requires `gcc` only — no libraries beyond libc. Re-run `make` after editing
`bms.c` / `bms.h`. `make clean` removes the binary.

Check that the binary exists before running anything; if `./bms` is missing,
run `make` rather than reporting a failure.

## Input syntax

A Bashicu Matrix is written as consecutive parenthesised columns, optionally
followed by brackets:

```
(0,0,0)(1,1,1)(2,1,0)(1,1,1)[2]
 \_____ columns _____________/ \_ bracket
```

- Each `(...)` is one **column**; the numbers inside are the rows.
- **Every column must have the same number of rows.** A mismatch prints
  `error:ys mismatch` and then segfaults.
- `[n]` is the expansion count. Multiple brackets `[2][1]` are allowed and are
  consumed left to right (see `-r`).
- Always quote the argument in the shell — parentheses are shell metacharacters.

## Commands

All forms take the matrix as the last positional argument(s).

| Task | Command |
|------|---------|
| Expand | `./bms [-e] [-d] [-r] [-v ver] "<bm>"` |
| Standard check | `./bms -s [-d] [-v ver] "<bm>"` |
| Compare | `./bms -c [-d] "<bm0>" "<bm1>"` |
| Loop check (single) | `./bms -l [-d] [-v ver] "<bm>"` |
| Loop search (range) | `./bms -lr [-d] [-v ver] "<bm0>" "<bm1>" [<depth>]` |
| Help | `./bms -h` (add `-d` for copyright) |

Options combine into one token (`-sd`, `-lrd`, `-ed`, `-lrdv 1.1`).

### Expand — `-e` (default)

Expansion is the default when no command flag is given, so `-e` is optional.

```bash
$ ./bms "(0,0,0)(1,1,1)(2,1,0)(1,1,1)[2]"
(0,0,0)(1,1,1)(2,1,0)(1,1,0)(2,2,1)(3,2,0)(2,2,0)(3,3,1)(4,3,0)
```

`-r` keeps expanding while brackets remain, printing every intermediate step:

```bash
$ ./bms -r "(0)(1)(2)(3)[1][1][1][1]"
(0)(1)(2)(2)[1][1][1]
(0)(1)(2)(1)(2)[1][1]
(0)(1)(2)(1)(1)[1]
(0)(1)(2)(1)(0)(1)(2)(1)
```

`-d` prints the internal decomposition (parent index matrix, good/bad part, bad
root, `lnz`, delta, ascension matrix) before the result.

### Standard check — `-s`

Prints `1` if the matrix is standard, `0` otherwise. With `-d`, prints the
comparison trace and `standard.` / `non-standard.` instead.

```bash
$ ./bms -s "(0)(1)"
1
$ ./bms -s "(1)"
0
```

### Compare — `-c`

Prints `1` / `0` / `-1` for `bm0 > bm1` / `==` / `<`. Brackets are ignored, and
so is `-v` (comparison is version-independent).

```bash
$ ./bms -c "(0,0)(1,1)(2,0)" "(0,0)(1,1)(1,1)"
1
$ ./bms -cd "(0,0)(1,1)(2,0)" "(0,0)(1,1)(1,1)"
(0,0)(1,1)(2,0) > (0,0)(1,1)(1,1)
```

### Loop finding — `-l`, `-lr`

`-l <bm>` first expands the matrix until no brackets remain, then reports `1` if
the result loops (gets no smaller under a further expansion), `0` otherwise.

`-lr <bm0> <bm1> [depth]` searches for a loop from `bm1` down to `bm0` within
`depth` expansions (default `3`). Detection is heuristic and may miss loops.

From koteitan/my-skills, MIT.

More from koteitan/my-skills

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Aug 8, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from koteitan

Cite this page

use-bms skill. Agent Mart. https://agentmart.dev/skills/koteitan-use-bms (last updated 2026-10-24)