スキル一覧に戻る

annotate-source-files

pjt222
更新日 6 days ago
20 閲覧
17
2
17
GitHubで表示
メタwordautomationdata

について

このスキルは、30以上のプログラミング言語に対応した正しいコメント構文を使用して、ソースファイルにPUTワークフロー注釈を自動的に追加します。`put_generate()`による注釈スケルトンの生成、複数行フォーマットや内部変数の処理、バリデーション機能を備えています。コードベースを分析した後、データパイプライン、ETLプロセス、または多段階計算におけるワークフローの文書化が必要な場合にご利用ください。

クイックインストール

Claude Code

推奨
メイン
npx skills add pjt222/agent-almanac -a claude-code
プラグインコマンド代替
/plugin add https://github.com/pjt222/agent-almanac
Git クローン代替
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/annotate-source-files

このコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします

ドキュメント

註源檔

加 PUT 流註於源使 putior 取構流數而生 Mermaid 圖。

  • analyze-codebase-workflow 析後有註計→用
  • 加流文於新或既源→用
  • 以手標與接富自察流→用
  • 文數管、ETL、多步算→用

  • :欲註之源
  • :註計或流步知
  • :式偏:單行或多行(默單行)
  • :用 put_generate() 生骨否(默是)

一:定註前綴

各言有 PUT 註前綴。用 get_comment_prefix() 求正者。

library(putior)

# Common prefixes
get_comment_prefix("R")    # "#"
get_comment_prefix("py")   # "#"
get_comment_prefix("sql")  # "--"
get_comment_prefix("js")   # "//"
get_comment_prefix("ts")   # "//"
get_comment_prefix("go")   # "//"
get_comment_prefix("rs")   # "//"
get_comment_prefix("m")    # "%"
get_comment_prefix("lua")  # "--"

得:串如 "#""--""//""%"

行與塊註:putior 察行註(//#--)與 C 式塊註(/* *//** */)之註。JS/TS 兩 ///* */ 塊皆掃。Python 三引號(''' '''察——Python 註用 #

敗:延不識→檔言或不支。察 get_supported_extensions() 得全列。不支言用 # 為慣默。

二:生註骨

put_generate() 由自察 I/O 建註模。

# Print suggestions to console
put_generate("./src/etl/")

# Single-line style (default)
put_generate("./src/etl/", style = "single")

# Multiline style for complex annotations
put_generate("./src/etl/", style = "multiline")

# Copy to clipboard for pasting
put_generate("./src/etl/", output = "clipboard")

R 例出:

# put id:'extract_data', label:'Extract Customer Data', input:'customers.csv', output:'raw_data.internal'

SQL 例出:

-- put id:'load_data', label:'Load Customer Table', output:'customers'

得:各源一或多註行,預填察函名與 I/O。

敗:無薦→檔或無可識 I/O 紋。按碼解手書註。

三:精註

改生骨加正標、接、元。

註語參:

<prefix> put id:'unique_id', label:'Human Readable Label', input:'file1.csv, file2.rds', output:'result.parquet, summary.internal'

欄:

  • id(必):獨識,為節接用
  • label(必):圖中可讀述
  • input:分號分入檔或變列
  • output:分號分出檔或變列
  • .internal 延:示內存變(腳本間不存)
  • node_type:控 Mermaid 節形與類樣。值:
    • "input" —— 體育場形 ([...]) 為數源與設
    • "output" —— 子程形 [[...]] 為生產
    • "process" —— 矩 [...] 為處步(默)
    • "decision" —— 菱 {...} 為條邏
    • "start" / "end" —— 體育場形 ([...]) 為入/終節

node_type 例:

# put id:'config', label:'Load Config', node_type:'input', output:'config.internal'
# put id:'transform', label:'Apply Rules', node_type:'process', input:'config.internal', output:'result.rds'
# put id:'report', label:'Generate Report', node_type:'output', input:'result.rds'

多行語(複雜註):

# put id:'complex_step', \
#   label:'Multi-line Label', \
#   input:'data.csv, config.yaml', \
#   output:'result.parquet'

塊註語(唯 // 前綴言:JS、TS、Go、Rust、C、C++、Java 等):

// 行註之言亦支 /* *//** */ 塊註內 PUT 註。塊體內以 * put 為行前綴:

/* put id:'init', label:'Initialize Config', output:'config.internal' */

/**
 * put id:'process', \
 *   label:'Process Records', \
 *   input:'config.internal, records.json', \
 *   output:'results.json'
 */
function processRecords(config, records) {
  // ...
}

JSDoc 式註尤益於文流步附 API 文:

/**
 * Transform raw sensor data into normalized readings.
 * put id:'normalize', label:'Normalize Sensor Data', input:'raw_readings.json', output:'normalized.parquet'
 */
export function normalizeSensorData(readings: SensorReading[]): NormalizedData {
  // ...
}

:塊註註# 前綴言(R、Python、Shell)或 -- 前綴言(SQL、Lua)。彼諸言唯用行註。塊出註不支跨行反斜續。

跨檔數流(接腳以檔 I/O):

# Script 1: extract.R
# put id:'extract', label:'Extract Data', output:'raw_data.internal, raw_data.rds'
data <- read.csv("source.csv")
saveRDS(data, "raw_data.rds")

# Script 2: transform.R
# put id:'transform', label:'Transform Data', input:'raw_data.rds', output:'clean_data.parquet'
data <- readRDS("raw_data.rds")
arrow::write_parquet(clean, "clean_data.parquet")

得:註精以正 ID、標、I/O 反實數流。

敗:I/O 不確→內存中間用 .internal 延、存數用明檔名。

四:插註入檔

置註於檔頂或關碼上。

置例

  1. 檔級註:置於檔頂、shebang 或檔頭註後
  2. 塊級註:置於所述碼上
  3. 每檔多註:用於有獨流階之檔

R 例置:

#!/usr/bin/env Rscript
# ETL Extract Script
#
# put id:'read_source', label:'Read Source Data', input:'raw_data.csv', output:'df.internal'

df <- read.csv("raw_data.csv")

# put id:'clean_data', label:'Clean and Validate', input:'df.internal', output:'clean.rds'

df_clean <- df[complete.cases(df), ]
saveRDS(df_clean, "clean.rds")

用 Edit 工於既檔插註而不擾周碼。

得:註插於各源適位。

敗:註破編輯器語法亮→確言註前綴正。PUT 註乃標註不應影碼行。

五:驗註

行 putior 驗以察註語與接。

# Scan annotated files
workflow <- put("./src/", validate = TRUE)

# Check for validation issues
print(workflow)
cat(sprintf("Total nodes: %d\n", nrow(workflow)))

# Verify connections by checking input/output overlap
inputs <- unlist(strsplit(workflow$input, ",\\s*"))
outputs <- unlist(strsplit(workflow$output, ",\\s*"))
connected <- intersect(inputs, outputs)
cat(sprintf("Connected data flows: %d\n", length(connected)))

# Generate diagram to visually inspect
cat(put_diagram(workflow, theme = "github", show_source_info = TRUE))

# Merge with auto-detected for maximum coverage
merged <- put_merge("./src/", merge_strategy = "supplement")
cat(put_diagram(merged, theme = "github"))

得:諸註析無誤。圖示接流。put_merge() 補自察缺。

敗:常驗症:

  • 缺閉引:id:'nameid:'name'
  • 內用雙引:id:"name"id:'name'
  • 跨檔重 ID:各 id 須於全掃處獨
  • 反斜續於誤行:\ 須為換行前末字

  • 諸註檔有語有效 PUT 註
  • put("./src/") 返預期節數之數框
  • 掃處無重 id
  • put_diagram() 出接流圖(非孤節)
  • 多行註(若用)以反斜續正析
  • .internal 變唯為出,不為跨檔入
  • exclude 排之檔不於流(如 put("./src/", exclude = "test_") 跳測助)

  • 引嵌誤:PUT 註用單引:id:'name'。雙引致註於串脈時析誤
  • 重 ID:各 id 於掃域須全獨。用 <script>_<step> 例(如 extract_readtransform_clean
  • .internal 為跨檔入.internal 變唯腳本行時存。腳本間傳數用存式(.rds.csv.parquet)為一腳本之出與次之入
  • 缺接:圖示斷節→察一註之出檔名與他註之入檔名字字相符(含延)
  • 註前綴誤:SQL 用 # 或 Python 用 // 致註為碼非註。恆以 get_comment_prefix()
  • 忘多行續:多行註各續行須以 \ 終、次行須以註前綴始
  • Python 三引號:putior 不掃 Python 三引號(''' '''""" """)。Python PUT 註恆用 #
  • 元管線註:註亦掃註之建腳(如腳呼 put()put_diagram()),其註現於生圖。或自掃排檔(見 generate-workflow-diagram 忌)或建腳本內勿置 PUT 註

  • analyze-codebase-workflow —— 前置:出此技循之註計
  • generate-workflow-diagram —— 次步:自註生末圖
  • install-putior —— 註前須裝 putior
  • configure-putior-mcp —— MCP 工供互註助

GitHub リポジトリ

pjt222/agent-almanac
パス: i18n/wenyan-ultra/skills/annotate-source-files
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

関連スキル

content-collections

メタ

このスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。

スキルを見る

polymarket

メタ

このスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。

スキルを見る

creating-opencode-plugins

メタ

このスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。

スキルを見る

sglang

メタ

SGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。

スキルを見る