Skip to content
Back to skills

Transcribe

ASecurity

Read ツールで開けない表計算ファイル (xlsx, ods, csv) を読み、セル結合された業務文書を Markdown へ変換し、セルの取りこぼしが無いことを検証する。

  • 12 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
ai-agentspythonbashnodegitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 24, 2026

npx -y skills add thkt/dotclaude --skill transcribe --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Transcribe?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Transcribe
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thkt-transcribe/badge)](https://www.skillsdirectory.com/skills/thkt-transcribe)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: transcribe
description: Read ツールで開けない表計算ファイル (xlsx, ods, csv) を読み、セル結合された業務文書を Markdown へ変換し、セルの取りこぼしが無いことを検証する。
when_to_use: .xlsx / .xls / .ods ファイルのパスが渡された, Excel の中身を読む, スプレッドシートの内容を調べる, 設計書を読む, read an Excel file, spreadsheet contents, xlsx
allowed-tools: Bash(node:*) Read
---

# /transcribe - スプレッドシート読み取り

Read ツールは xlsx を開けない。このリポジトリに入れた hucre をライブラリとして使い、シートを読む。

## 手順

1. 中身の形を見る。

```bash
node ${CLAUDE_SKILL_DIR}/scripts/cli.ts list <xlsx>
```

シート一覧と充填率が出る。充填率は値が入っているセルの割合で、ここで次の分岐が決まる。

2. 充填率で読み方を決める。

| 充填率   | 状態                                           | 読み方                                                 |
| -------- | ---------------------------------------------- | ------------------------------------------------------ |
| 20% 未満 | セル結合とレイアウト目的の空セルが大半を占める | extract で整形してから読む                             |
| 20% 以上 | 1 行 1 レコードに近い                          | `--sheet` でシートを絞り `generic` のまま extract する |

3. 整形する。出力先はリポジトリの外か、ユーザーが指定した場所にする。

```bash
node ${CLAUDE_SKILL_DIR}/scripts/cli.ts extract <xlsx> --out <dir> [--profile <name>] [--sheet <n|name>]
```

4. 欠落が無いか確かめる。この確認を飛ばさない。書式判定を誤るとエラーを出さずにセルが消えるため、消えたかどうかは照合でしか分からない。

```bash
node ${CLAUDE_SKILL_DIR}/scripts/cli.ts verify <xlsx> <dir>
```

`OK: every cell of N sheets survived into the output.` が出たら完了。欠落があればシート名と欠落セルの先頭 40 字を返すので、プロファイルの判定を直してから再実行する。

## プロファイル

書式固有の判定はプロファイルが持つ。`scripts/convert.ts` の `profiles` に定義がある。

未知の書式にはまず `generic` を使う。表として整形したい場合だけプロファイルを足す。プロファイルが持つ判定は 5 つで、null にした判定は行わない。

| プロファイル     | 対象                                            | 挙動                                                       |
| ---------------- | ----------------------------------------------- | ---------------------------------------------------------- |
| `generic` (既定) | 書式が不明なファイル                            | 表として解釈しない。セル結合を畳むだけで、情報は落ちない   |
| `ja-api-spec`    | 項番とパラメータ名の列を持つ日本語の API 設計書 | 見出し、パラメータ表、2 段ヘッダ、コードブロックを復元する |

| キー                 | 判定                                                             |
| -------------------- | ---------------------------------------------------------------- |
| `docHeaderFirstCell` | この文字列が A1 にあるとき、先頭 3 行を文書情報として畳む        |
| `heading`            | この正規表現に一致する 1〜2 セルの行を見出しにする               |
| `tableHeadWords`     | この正規表現に一致し、かつ 3 セル以上ある行を表ヘッダにする      |
| `nestColumnLabel`    | この語を含む列で、列内のセル位置を階層の深さとして復元する       |
| `code`               | この正規表現に一致する単独セルの行を連結してコードブロックにする |

## 判断の基準

単発で内容を知りたいだけなら、`extract --sheet <n|name> --out` の出力先を一時ディレクトリにして読み、リポジトリには残さない。Markdown ファイルとして残すのは、横断 grep を繰り返すとき、人が読むとき、git で差分を追うときに限る。

整形の効果は充填率で決まる。充填率が低いほど空セルがトークンを食い、整形で落ちる分が大きくなる。

## 依存

`hucre` をリポジトリのルートに入れてある (`bun add hucre`)。未導入の環境ではスクリプトが導入手順を出して終了する。node は script の親を辿って `node_modules` を探すので、プラグイン導入先なら `~/.claude` で入れれば解決する。

Python へ移さないのは、`hucre` が xlsx、ods、csv を 1 パッケージで持つため。openpyxl は ods を読まず odfpy が別に要り、このリポジトリの Python は全て標準ライブラリのみで依存マニフェストを持たない。標準ライブラリで書き直すと、日付セルが素の数値で `styles.xml` の `numFmtId` を辿らないと判別できない部分を自前で抱える。

CLI (`hucre convert`) は使わない。理由は 3 つある。

| 理由                   | 根拠                                                                          |
| ---------------------- | ----------------------------------------------------------------------------- |
| セル結合を落とす       | CLI の説明文が `cell values only — styles, merges, formulas` と明記している   |
| 先頭シート以外を落とす | 3 シートのファイルで `Read 3 sheet(s)` と出しながら 1 シートしか書き出さない  |
| Markdown を出せない    | `convert <INPUT> <OUTPUT>` の形式変換のみで、シートを選ぶオプションも持たない |

Files in this skill

  • SKILL.md5.8 KB
  • scripts/cli.ts6.6 KB
  • scripts/convert.ts9.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.