Agent skill

Generate Log Events CSV

by concord-consortium in concord-consortium/codap

A skill your agent uses when regenerating, updating, or auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit, with placeholders/parameters/descriptions).

MITAuto-check passedDocuments & Office

Install Generate Log Events CSV

skills CLI
$ npx skills add concord-consortium/codap --skill generate-log-events-csv -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install concord-consortium/codap generate-log-events-csv --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/concord-consortium/codap.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/generate-log-events-csv .claude/skills/generate-log-events-csv && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
generate-log-events-csv
GitHub stars
106
Token cost
~1.4k tokens
SKILL.md length
682 words
Files
6
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when regenerating, updating, or auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit, with placeholders/parameters/descriptions).

  • Works in 5 steps: Run the generator (requires v3 deps… → Handle NEW events. For each + event… → Confirm REMOVED events were… → …
  • Auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit
  • SKILL.md covers Overview, How it works, Steps and Notes
  • Runs JavaScript and Shell scripts from its folder; calls npm

What it does

Generate Log Events CSV is an agent skill from concord-consortium/codap. Use when regenerating, updating, or auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit, with placeholders/parameters/descriptions). Also use to check whether the code and the dictionary have drifted.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `generate-log-events-csv.sh`).

It sits in Documents & Office, covering CSV and tabular files. The repository describes itself as: CODAP (Common Online Data Analysis Platform). The licence is MIT.

When your agent uses it

  • Auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit
  • With placeholders/parameters/descriptions)
  • Check whether the code and the dictionary have drifted

Example prompts

  • “/generate-log-events-csv”

Requirements

  • Node.js
  • A Bash shell

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Run the generator (requires v3 deps installed so typescript resolves; run
  2. Handle NEW events. For each + event reported (its source file:line is printed),
  3. Confirm REMOVED events were intentionally dropped from the code (a - line means
  4. Re-run the generator and confirm it reports 0 NEW / 0 REMOVED and no rows with
  5. Recommend updating the Google Sheet. After the CSV is regenerated, recommend the

What it can do on your machine

Read from SKILL.md and the folder at commit b85f7a4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.google.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Generate Log Events CSV loads about 1.4k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 682 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from concord-consortium/codap at commit b85f7a4, republished under its MIT licence (© concord-consortium). 682 words, ~1,365 tokens.

Download SKILL.mdSave it as .claude/skills/generate-log-events-csv/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
generate-log-events-csv
description
Use when regenerating, updating, or auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit, with placeholders/parameters/descriptions). Also use to check whether the code and the dictionary have drifted.

Generate Log Events CSV

Overview

Regenerates codap-v3-log-events.csv (in this skill folder): a dictionary of every log event the CODAP v3 app can emit, in the column format shared with the other Concord log dictionaries:

ColumnMeaning
EventThe message template, with %@ placeholder slots kept in place (the stable event identifier).
PlaceholdersThe values interpolated into the %@ slots, in order. v3 bakes its "primary value" into the event string, so this is the closest analog to event_value in the other apps.
ValueAlways empty. v3's logger has no distinct event_value field (it just sets event_value = JSON.stringify(args)); the column is kept for parity with the other dictionaries.
ParametersThe args object logged alongside the event, as { key: type }.
DescriptionPlain-language description of the user action / condition that triggers the event.

There is deliberately no Source column in the output.

How it works

The mechanical work is done by committed scripts so this does not have to be re-derived from the code each time:

  • extract-log-events.mjs parses every non-test file under v3/src with the TypeScript compiler API and emits one record per distinct Event. It captures every log-emitting form: the logMessageWithReplacement / logStringifiedObjectMessage / logModelChangeFn helpers, Logger.log, and log: / log = / const log = payloads that are bare strings, template literals, inline { message, args } objects, or ternaries. Ternary messages are split into one row per branch (each string is a distinct event in the real logs). The data-interactive logMessage handler forwards a plugin-defined event, represented by the single <plugin-defined> row.
  • build-csv.mjs merges that extraction with the existing committed CSV, preserving curated Placeholders / Parameters / Descriptions by matching on the Event string, and reports NEW events (found in code, not yet in the CSV) and REMOVED events (in the CSV, no longer in code).
  • generate-log-events-csv.sh runs both in sequence and writes the CSV.

What the scripts cannot do, and what this skill is for: author the human Description for a new event, and refine the Parameters value types and the Placeholders of logModelChangeFn events (whose values come from a model-state function). The extractor leaves those best-effort or blank for new events; a human/Claude fills them in.

Show full SKILL.md (338 more words)Show less

Steps

  1. Run the generator (requires v3 deps installed so typescript resolves; run npm install in v3 first if needed):

    bash
    ./.claude/skills/generate-log-events-csv/generate-log-events-csv.sh

    To only detect drift without writing (e.g. in CI), add --check; it exits non-zero if there are NEW or REMOVED events.

  2. Handle NEW events. For each + event reported (its source file:line is printed), open that call site, then edit codap-v3-log-events.csv to:

    • write a concise, plain-language Description of the triggering user action;
    • fill the value types in Parameters (e.g. { count: number });
    • for logModelChangeFn events, set Placeholders to the initial-then-final value names (e.g. xInitial, yInitial, x, y).

    Placeholder semantics when authoring:

    • logMessageWithReplacement(msg, args) → %@ slots filled by the args values in order → Placeholders = the arg keys in order.
    • logStringifiedObjectMessage(msg, args) → one %@ filled by the whole stringified object → Placeholders = { key1, key2 }.
    • template literal ${x} in the message → Placeholders = x.
  3. Confirm REMOVED events were intentionally dropped from the code (a - line means the code no longer emits that event). If a removal is expected, nothing to do; the row is already gone from the CSV.

  4. Re-run the generator and confirm it reports 0 NEW / 0 REMOVED and no rows with an empty Description.

  5. Recommend updating the Google Sheet. After the CSV is regenerated, recommend the user update both the content and the filename of the published sheet: https://docs.google.com/spreadsheets/d/1XTar6xGhLN7U72Nyr9lmU-1xzIE5ydHCwnL67uBsL04/edit

    • Content: File → Import → Upload the regenerated codap-v3-log-events.csv → "Replace current sheet" (keeps the same file/URL).
    • Filename: rename it to CODAP Log Events (Month DD, YYYY) using the current date, since the title carries the date it was generated.

    Do not edit the sheet automatically; present the recommendation and let the user apply it.

Notes

  • The CSV is committed as the source of record so descriptions survive regeneration; keep it in version control.
  • Rows are sorted case-insensitively by Event.
  • If the extractor ever reports a surprising drop in event count, a new log-emitting form may have been introduced that its AST visitor does not recognize (currently: the three helpers, Logger.log, and log: / log = / const log = payloads). Extend extract-log-events.mjs to cover it.

© concord-consortium, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files in .claude/skills/generate-log-events-csv of concord-consortium/codap.

  • SKILL.md
  • build-csv.mjs
  • codap-v3-log-events.csv
  • copy-rows-to-clipboard.mjs
  • extract-log-events.mjs
  • generate-log-events-csv.sh

Open the folder on GitHubat commit b85f7a4

Compare with similar skills

Generate Log Events CSV next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Generate Log Events CSV compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Generate Log Events CSV this skillconcord-consortium/codap106—~1.4kAutomated safety check: PassMIT
Data Table Managern8n-io/n8n207k—~2.3kAutomated safety check: PassCustom licence
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
Abuse Hunternexu-io/harness-engineering-guide664—~1.9kAutomated safety check: PassMIT
Intelligence Requirements BuilderTracecatHQ/tracecat3.8k—~6kAutomated safety check: PassMIT
Markitshift-labs-ai/markit1.3k—~299Automated safety check: PassMIT

Similar skills

  • Official

    Load before calling data-tables or parse-file. An agent skill from n8n-io/n8n.

    207k GitHub stars~2.3k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • Abuse Hunter

    nexu-io/harness-engineering-guide

    Detect and investigate bulk registration abuse on SaaS platforms.

    664 GitHub stars~1.9k tokensUpdated 5 mo ago
    Documents & OfficeAuto-check passed
  • Turns a vague, high-level stakeholder ask into a structured set of intelligence requirements for a CTI team, complete with Essential Elements of Information, collection guidance, success criteria…

    3.8k GitHub stars~6k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Markit

    shift-labs-ai/markit

    Convert files and URLs to Markdown. An agent skill from shift-labs-ai/markit.

    1.3k GitHub stars~299 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Sector Analyst

    tradermonty/claude-trading-skills

    This skill should be used when analyzing sector rotation patterns and market cycle positioning.

    3k GitHub starsUsed in 1 repo~2.3k tokens
    Documents & OfficeAuto-check passed

More from concord-consortium/codap

  • Codap Resources

    concord-consortium/codap

    A skill your agent uses when deploying, updating, or syncing assets to the codap-resources S3 bucket - plugins, example documents, boundary files, banners, or notification configs

    106 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Plugin API Docs

    concord-consortium/codap

    A skill your agent uses when regenerating, checking, or auditing the CODAP v3 Plugin API reference in v3/doc/plugin-api/ — the per-resource pages, the quick-reference tables, the JSON inventory, or…

    106 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Codap V3 Build

    concord-consortium/codap

    A skill your agent uses when preparing a CODAP v3 release, creating release notes, updating version files, creating release PRs, tagging releases, or deploying to staging/production.

    106 GitHub stars~15k tokensUpdated today
    Auto-check passed

Questions about Generate Log Events CSV

What does Generate Log Events CSV do?

A skill your agent uses when regenerating, updating, or auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit, with placeholders/parameters/descriptions). Generate Log Events CSV is an agent skill from concord-consortium/codap. Use when regenerating, updating, or auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit, with placeholders/parameters/descriptions).

When should I use Generate Log Events CSV?

Generate Log Events CSV fits situations like: auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit; with placeholders/parameters/descriptions); check whether the code and the dictionary have drifted.

How do I install Generate Log Events CSV in Claude Code?

Run `npx skills add concord-consortium/codap --skill generate-log-events-csv -a claude-code`. Or copy the skill folder (.claude/skills/generate-log-events-csv in concord-consortium/codap) into .claude/skills/generate-log-events-csv in your project. Claude Code loads it when a task matches its description.

How do I install Generate Log Events CSV in Codex?

Run `npx skills add concord-consortium/codap --skill generate-log-events-csv -a codex`. Or copy the skill folder (.claude/skills/generate-log-events-csv in concord-consortium/codap) into .agents/skills/generate-log-events-csv in your project. Codex loads it when a task matches its description.

Can I use Generate Log Events CSV in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add concord-consortium/codap --skill generate-log-events-csv -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/generate-log-events-csv, .gemini/skills/generate-log-events-csv, .github/skills/generate-log-events-csv and .opencode/skills/generate-log-events-csv in your project.

What does Generate Log Events CSV need to run?

Going by SKILL.md and its folder, Generate Log Events CSV needs JavaScript and a shell for the scripts in its folder and the command-line tools its instructions call (npm). Our summary lists: Node.js; A Bash shell.

Does Generate Log Events CSV access the network?

SKILL.md names 1 domain. As links in the text: docs.google.com. This is read from the text; nothing was executed.

Is Generate Log Events CSV safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Generate Log Events CSV use?

Generate Log Events CSV is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Generate Log Events CSV use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Generate Log Events CSV?

Skills that share tags, products or a category with Generate Log Events CSV: Data Table Manager (n8n-io/n8n, 207k stars), Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars), Abuse Hunter (nexu-io/harness-engineering-guide, 664 stars) and Intelligence Requirements Builder (TracecatHQ/tracecat, 3.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Generate Log Events CSV?

concord-consortium (a GitHub organization) maintains it in concord-consortium/codap, which has 106 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.

Source: concord-consortium/codap on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.