journal

kazukinagata/shinkoku · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/kazukinagata/shinkoku --skill journal
0 commentsdiscussion
summary

CSV・レシート・請求書からデータを取り込み、ユーザー確認のうえ仕訳を登録するスキル。

  • 帳簿の初期化、仕訳の検索・修正・削除も本スキルで対応する。
skill.md

仕訳入力・帳簿管理(Journal Entry & Ledger Management)

CSV・レシート・請求書からデータを取り込み、ユーザー確認のうえ仕訳を登録するスキル。 帳簿の初期化、仕訳の検索・修正・削除も本スキルで対応する。

CLI スクリプト

本スキルでは以下の CLI スクリプトを使用する:

  • 帳簿管理: shinkoku ledger <subcommand> [args]
  • データ取り込み: shinkoku import <subcommand> [args]

すべてのコマンドは JSON を stdout に出力する。入力はコマンドライン引数または --input <json_file> で渡す。

設定の読み込み(最初に実行)

  1. shinkoku.config.yaml を Read ツールで読み込む
  2. ファイルが存在しない場合は /setup スキルの実行を案内して終了する
  3. 設定値を把握し、相対パスは CWD を基準に絶対パスに変換する:
    • db_path: CLI スクリプトの --db-path 引数に使用
    • output_dir: 進捗ファイル等の出力先ベースディレクトリ
    • 各ディレクトリ: ファイル参照時に使用

パス解決の例(db_path)

config の db_path./shinkoku.db で CWD が /home/user/tax-2025/ の場合、CLI スクリプトには絶対パス /home/user/tax-2025/shinkoku.db--db-path で渡す。init, journal-add, journal-batch-add, search, journal-update, journal-delete すべてに同じ絶対パスを使用する。

進捗情報の読み込み

設定の読み込み後、引継書ファイルを読み込んで前ステップの結果を把握する。

  1. .shinkoku/progress/progress-summary.md を Read ツールで読み込む(存在する場合)
  2. 以下の引継書を Read ツールで読み込む(存在する場合):
    • .shinkoku/progress/01-setup.md
  3. 読み込んだ情報を以降のステップで活用する(ユーザーへの再質問を避ける)
  4. ファイルが存在しない場合はスキップし、ユーザーに必要情報を直接確認する

基本方針

  • CSV取り込み → ユーザー確認 → 仕訳登録 の3ステップを基本フローとする
  • 勘定科目は references/account-master.md のマスタデータに準拠する
  • 仕訳登録前に必ずユーザーに内容を確認する(自動登録しない)
  • 消費税区分(課税/非課税/不課税/対象外)を正確に設定する
  • 日付・金額・勘定科目の整合性を検証してからツールを呼び出す
  • エラー発生時はエラー内容を日本語で分かりやすく伝え、修正方法を提案する

前提条件の確認

仕訳入力を開始する前に以下を確認する:

  1. 帳簿が初期化済みか: 未初期化の場合は init コマンドで初期化を案内する
  2. 会計年度: 対象の会計年度(例: 2025)を確認する
  3. 青色申告 or 白色申告: 複式簿記(青色65万円控除)か簡易簿記かで記帳方法が変わる

ステップ1: 帳簿の初期化

初回利用時、または新しい会計年度を開始する際に帳簿を初期化する。

init コマンド

shinkoku ledger init \
  --db-path /path/to/shinkoku.db \
  --fiscal-year 2025
  • 会計年度と保存先パスをユーザーに確認してから実行する
  • 既存のデータベースがある場合は上書き警告を表示する
  • 初期化完了後、勘定科目マスタが登録されたことを確認する

ステップ2: データの取り込み

ユーザーが持つ取引データの形式に応じて適切なインポートツールを選択する。

2-1. CSV取り込み(csv コマンド)

クレジットカード明細・銀行取引明細・会計ソフトのエクスポートデータ等を読み込む。

shinkoku import csv \
  --file-path /path/to/transactions.csv

戻り値(JSON):

  • headers: 検出されたカラムヘッダ一覧
  • rows: パースされた各行のデータ
  • encoding: 自動検出されたエンコーディング
  • row_count: 行数

取り込み後の処理手順:

  1. 取り込まれたデータのプレビューを表示する(先頭5〜10行)
  2. 日付・金額・摘要のカラムを特定してユーザーに確認する
  3. 各行に対して勘定科目の推定を行い、候補を提示する
  4. 推定根拠を明示する(摘要のキーワードマッチ等)
  5. ユーザーが科目を確認・修正したら仕訳データに変換する

勘定科目の推定ルール:

  • 摘要に「電車」「バス」「タクシー」「JR」→ 旅費交通費(5130)
  • 摘要に「Amazon」「ヨドバシ」→ 消耗品費(5190)または事務用品費(5360)
  • 摘要に「ドコモ」「au」「ソフトバンク」→ 通信費(5140)
  • 摘要に「東京電力」「ガス」「水道」→ 水道光熱費(5120)
  • 摘要に「家賃」「賃料」→ 地代家賃(5250)
  • 推定できない場合は「不明」として候補一覧を提示し、ユーザーに選択を求める

2-2. レシート取り込み(receipt コマンド)

紙のレシート・領収書の画像ファイルからOCRでデータを抽出する。

shinkoku import receipt \
  --file-path /path/to/receipt.jpg

重要: 画像の読み取りは対応する reading- スキルに委任する。*

単一レシートの場合

  1. receipt コマンドでファイルの存在を確認する

  2. 画像ファイルの読み取りには /reading-receipt スキルを使用する。 スキルの指示に従い、デュアル検証(2つの独立した読み取り結果の照合)を行って結果を取得する。

    結果照合: 両方の読み取り結果から total_amount, date, vendor を比較する

    一致の場合: そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告

    不一致の場合: ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:

    • 差異のあるフィールドを明示する
    • A を採用 / B を採用 / 手動入力 の3択を AskUserQuestion で提示する
  3. 読み取り結果の ---RECEIPT_DATA--- ブロックの内容を解析する

  4. 日付・金額・店舗名をユーザーに表示して正しいか確認する

  5. 品目から勘定科目を推定する

  6. 家事按分の必要性を確認する(自宅兼事務所の場合等)

  7. 確認後、仕訳データに変換する

複数レシートの一括処理

  1. Glob ツールでレシート画像の一覧を取得する(例: receipts/*.jpg, receipts/*.png

  2. receipt コマンドで各ファイルの存在を確認する

  3. 画像ファイルの読み取りには /reading-receipt スキルを使用する。 スキルの指示に従い、デュアル検証(2つの独立した読み取り結果の照合)を行って結果を取得する。

    結果照合: ファイル単位で両方の読み取り結果の total_amount, date, vendor を比較する

    一致の場合: そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告

    不一致の場合: 不一致のファイルについてユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:

    • 差異のあるフィールドを明示する
    • A を採用 / B を採用 / 手動入力 の3択を AskUserQuestion で提示する
  4. 各レシートの結果をまとめてユーザーに提示する

  5. 各レシートの勘定科目を推定し、一覧でユーザーに確認する

  6. 確認後、journal-batch-add コマンドで一括登録する

2-3. 請求書取り込み(invoice コマンド)

PDFの請求書からテキストを抽出する。

shinkoku import invoice \
  --file-path /path/to/invoice.pdf

戻り値(JSON):

  • vendor: 請求元
  • date: 請求日
  • due_date: 支払期日
  • amount: 請求金額
  • tax_amount: 消費税額
  • items: 明細行
  • raw_text: 抽出生テキスト

画像ファイルの場合: OCR 読み取り

extracted_text が空の場合(画像ファイルまたはスキャン PDF)、画像の読み取りは /reading-invoice スキルを使用する。 スキルの指示に従い、デュアル検証(2つの独立した読み取り結果の照合)を行って結果を取得する。

結果照合: 両方の読み取り結果から total_amount, tax_amount, date, vendor を比較する

一致の場合: そのまま採用。「2つの独立した読み取りで結果が一致しました」と報告

不一致の場合: ユーザーに元画像パスと両方の結果を提示し、正しい方を選択してもらう:

  • 差異のあるフィールドを明示する
  • A を採用 / B を採用 / 手動入力 の3択を AskUserQuestion で提示する

取り込み後の処理手順:

  1. 抽出結果を表示し、金額・日付・取引先が正しいか確認する
  2. インボイス番号(T+13桁)の有無を確認する
  3. 消費税の税率区分(10%/8%軽減税率)を確認する
  4. 発生主義で未払金を計上するか、現金主義で処理するか確認する
  5. 確認後、仕訳データに変換する

ステップ2.5: 重複チェック(CSVインポート時)

CSVインポートのフローに重複チェックを組み込む:

  1. ファイル重複チェック: check-imported コマンドでファイルのハッシュを確認
    shinkoku import check-imported \
      --db-path DB --file-path /path/to/file.csv
    
    • 既にインポート済みの場合はユーザーに警告し、再インポートの意思を確認する
  2. 仕訳登録時の自動チェック: journal-batch-add が自動的に重複を検出
    • exact(完全一致): 登録をブロック、既存の仕訳IDを表示
    • similar(類似): 警告を表示し、ユーザーに確認を求める
    • ユーザーが「登録する」と回答した場合は --force を付けて再実行
  3. インポート記録: 登録成功後、record-source コマンドでインポート履歴を記録する
    shinkoku import record-source \
      --db-path DB --file-path /path/to/file.csv --source-type csv
    

申告前の重複チェック

決算処理の前に check-duplicates コマンドを実行し、重複の疑いのある仕訳ペアを一覧表示する。

shinkoku ledger check-duplicates \
  --db-path DB --fiscal-year 2025

ユーザーに確認の上、不要な重複は journal-delete コマンドで削除する。

ステップ3: 仕訳の登録

ユーザーが確認したデータを帳簿に登録する。

3-1. 単一仕訳の登録(journal-add

# journal.json に JournalEntry を JSON で記述
shinkoku ledger journal-add \
  --db-path DB --fiscal-year 2025 --input journal.json

journal.json の形式:

{
  "date": "2025-01-15",
  "description": "摘要テキスト",
  "lines": [
    {"side": "debit", "account_code": "5200", "amount": 1000},
    {"side": "credit", "account_code": "1100", "amount": 1000}
  ]
}

3-2. 一括仕訳登録(journal-batch-add

CSV取り込み等で複数の仕訳を一度に登録する場合に使用する。

# entries.json に JournalEntry の配列を記述
shinkoku ledger journal-batch-add \
  --db-path DB --fiscal-year 2025 --input entries.json [--force]

登録前の確認事項:

  • 登録件数と合計金額をサマリーとして提示する
  • 「以下の N 件の仕訳を登録します。よろしいですか?」と確認する
  • ユーザーの明示的な承認を得てから journal-batch-add を実行する

登録時の検証ルール

以下を検証し、不備があれば登録前に警告する:

  1. 日付の妥当性: 会計年度の範囲内であるか(例: 2025-01-01 〜 2025-12-31)
  2. 勘定科目の存在: 借方・貸方の科目コードがマスタに存在するか
  3. 金額の正値: 金額が正の整数であるか
  4. 貸借の一致: 複合仕訳の場合、借方合計 = 貸方合計であるか
  5. 消費税区分の整合: 科目の tax_category と税率の組み合わせが妥当か

ステップ4: 仕訳の検索

登録済みの仕訳を検索する。

search コマンド

# search_params.json に JournalSearchParams を記述
shinkoku ledger search \
  --db-path DB --input search_params.json

search_params.json の形式:

{
  "fiscal_year": 2025,
  "date_from": "2025-01-01",
  "date_to": "2025-03-31",
  "account_code": "5200",
  "description_contains": "Amazon"
}

検索結果の表示:

  • 検索結果を日付順の一覧表で表示する
  • 各仕訳には journal_id を表示する(修正・削除で使用)
  • 合計金額を末尾に表示する

ステップ5: 仕訳の修正・削除

5-1. 仕訳の修正(journal-update

shinkoku ledger journal-update \
  --db-path DB --fiscal-year 2025 --journal-id 42 --input updated.json
  • 修正前後の差分を表示してから確認する
  • 修正理由を摘要に追記することを推奨する

5-2. 仕訳の削除(journal-delete

shinkoku ledger journal-delete \
  --db-path DB --journal-id 42
  • 削除対象の仕訳内容を表示して確認する
  • 「この仕訳を削除します。よろしいですか?」と最終確認する
  • 削除は取り消しできない旨を注意喚起する

よくある仕訳パターン

売上の計上

借方: 売掛金(1010) / 貸方: 売上(4001)   金額: 110,000円  税率: 10%
摘要: ○○社 Webサイト制作費 請求書No.2025-001

経費の支払い(事業用口座から)

借方: 消耗品費(5190) / 貸方: 普通預金(1002)  金額: 5,500円  税率: 10%
摘要: Amazon ワイヤレスキーボード

個人の財布から事業経費を支払った場合

借方: 旅費交通費(5130) / 貸方: 事業主借(3010)  金額: 1,200円  税率: 10%
摘要: JR 新宿→渋谷 打ち合わせ往復

事業資金を個人利用した場合

借方: 事業主貸(1200) / 貸方: 普通預金(1002)  金額: 50,000円
摘要: 生活費引き出し

次のステップの案内

仕訳入力が完了したら、以下を案内する:

  • settlement スキルで決算整理・決算書作成を行う
  • trial-balance コマンドで残高試算表を確認して仕訳漏れがないか検証する:
    shinkoku ledger trial-balance \
      --db-path DB --fiscal-year 2025
    
  • 全取引の登録完了を確認してから決算処理に進む

引継書の出力

サマリー提示後、以下のファイルを Write ツールで出力する。 これにより、セッションの中断や Compact が発生しても次のステップで結果を引き継げる。

ステップ別ファイルの出力

.shinkoku/progress/04-journal.md に以下の形式で出力する:

---
step: 4
skill: journal
status: completed
completed_at: "{当日日付 YYYY-MM-DD}"
fiscal_year: {tax_year}
---

# 仕訳入力・帳簿管理の結果

## インポート済みソース

| ソース名 | 件数 | インポート日 |
|---------|------|------------|
| {CSV名やレシート等} | {件数} | {日付} |

## 登録済み仕訳

- 総仕訳件数: {件数}件

## 主要勘定科目の残高(試算表スナップショット)

| 勘定科目 | コード | 残高 |
|---------|--------|------|
| {科目名} | {コード} | {残高}円 |
(売上、主要経費、現預金、売掛金、買掛金など主要科目を記載)

## 重複チェック結果

- チェック実施: {済み/未実施}
- 重複の疑い: {なし/あり(件数)}

## 未処理の項目

- {あれば記載、なければ「なし」}

## 次のステップ

/settlement で決算整理・決算書作成を行う

進捗サマリーの更新

.shinkoku/progress/progress-summary.md を更新する(存在しない場合は新規作成):

  • YAML frontmatter: fiscal_year、last_updated(当日日付)、current_step: journal
  • テーブル: 全ステップの状態を更新(journal を completed に)
  • 次のステップの案内を記載

出力後の案内

ファイルを出力したらユーザーに以下を伝える:

  • 「引継書を .shinkoku/progress/ に保存しました。セッションが中断しても次のスキルで結果を引き継げます。」
  • 次のステップの案内
how to use journal

How to use journal on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add journal
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/kazukinagata/shinkoku --skill journal

The skills CLI fetches journal from GitHub repository kazukinagata/shinkoku and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/journal

Reload or restart Cursor to activate journal. Access the skill through slash commands (e.g., /journal) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

User Story & Requirements Generation

Create detailed user stories, acceptance criteria, and feature specs

Example

Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios

Reduce spec writing time by 50%, ensure comprehensive coverage

Competitive Analysis

Research competitors, compare features, identify gaps

Example

Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities

Complete competitive research in 2 hours instead of 2 days

Roadmap Prioritization

Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs

Example

Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale

Make data-driven prioritization decisions faster

Stakeholder Communication

Draft PRDs, status updates, and stakeholder presentations

Example

Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement

Save 3-5 hours/week on communication overhead

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client
  • Access to product documentation and roadmap tools (Jira, Notion, etc.)
  • Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
  • Stakeholder contact information and communication channels

Time Estimate

30-60 minutes to see productivity improvements

Installation Steps

  1. 1.Install product management skill
  2. 2.Start with user story generation for known feature
  3. 3.Progress to competitive analysis: research 2-3 competitors
  4. 4.Use for roadmap prioritization: apply RICE/ICE scoring
  5. 5.Draft stakeholder communications and refine based on feedback
  6. 6.Build template library for recurring PM tasks
  7. 7.Share effective prompts with product team

Common Pitfalls

  • Not validating competitive research—verify facts before sharing
  • Accepting user stories without involving engineering team
  • Over-relying on frameworks without qualitative judgment
  • Not customizing outputs to company culture and communication style
  • Skipping stakeholder validation of generated requirements

Best Practices

✓ Do

  • +Validate research and competitive analysis with real data
  • +Collaborate with engineering when generating technical requirements
  • +Customize frameworks and templates to your company context
  • +Use skill for first drafts, refine with stakeholder input
  • +Document successful prompt patterns for PM tasks
  • +Combine AI efficiency with human judgment and intuition

✗ Don't

  • Don't publish competitive analysis without fact-checking
  • Don't finalize user stories without engineering review
  • Don't make prioritization decisions solely on AI scoring
  • Don't skip customer validation of generated requirements
  • Don't ignore company-specific context and culture

💡 Pro Tips

  • Provide context: company goals, constraints, customer feedback
  • Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
  • Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
  • Use skill for 70% generation + 30% customization to company needs

When to Use This

✓ Use When

Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.

✗ Avoid When

Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.

Learning Path

  1. 1Basic: user stories, feature specs, status updates
  2. 2Intermediate: competitive analysis, prioritization frameworks, PRDs
  3. 3Advanced: product strategy, go-to-market planning, OKR setting
  4. 4Expert: product vision, market positioning, business model innovation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.462 reviews
  • Aditi Abbas· Dec 28, 2024

    Registry listing for journal matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Ganesh Mohane· Dec 24, 2024

    Useful defaults in journal — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Daniel Tandon· Dec 24, 2024

    Keeps context tight: journal is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Amelia Anderson· Dec 16, 2024

    We added journal from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Zaid Torres· Dec 12, 2024

    I recommend journal for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Shikha Mishra· Dec 4, 2024

    Solid pick for teams standardizing on skills: journal is focused, and the summary matches what you get after install.

  • Kabir Mensah· Nov 19, 2024

    journal fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Sakshi Patil· Nov 15, 2024

    journal is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Kabir Rahman· Nov 15, 2024

    I recommend journal for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Kabir Brown· Nov 7, 2024

    journal reduced setup friction for our internal harness; good balance of opinion and flexibility.

showing 1-10 of 62

1 / 7