MCP HubMCP Hub
Вернуться к навыкам

annotate-source-files

pjt222
Обновлено 6 days ago
19 просмотров
17
2
17
Посмотреть на GitHub
Метаwordautomationdata

О программе

Этот навык автоматически добавляет аннотации рабочих процессов PUT в исходные файлы, используя правильный синтаксис комментариев для более чем 30 языков программирования. Он обрабатывает генерацию аннотаций, многострочные комментарии, переменные .internal и валидацию, что делает его идеальным для документирования рабочих процессов в конвейерах данных или многошаговых вычислениях. Используйте его после анализа кодовой базы и создания плана аннотаций для внедрения структурированной документации непосредственно в ваши исходные файлы.

Быстрая установка

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() 生骨乎(默:是)

第一步:定注之前綴

各語有特注前綴。以 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/skills/annotate-source-files
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Похожие навыки

content-collections

Мета

Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.

Просмотреть навык

polymarket

Мета

Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.

Просмотреть навык

creating-opencode-plugins

Мета

Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.

Просмотреть навык

sglang

Мета

SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.

Просмотреть навык