csv-manual-export – Other skill for AI agents
CSV Manual Export: a UTF-8 CSV template from a confirmed field list, empty by default, with no invented columns or values. Use for an import, staging or handoff file.
Install the csv-manual-export skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/csv-manual-export-6258c.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /csv-manual-export – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/csv-manual-export-6258c.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $csv-manual-export – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/csv-manual-export-6258c.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /csv-manual-export – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/csv-manual-export-6258c.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /csv-manual-export – then describe the task you want done.
SKILL.md content
CSV Manual Export
What it is: a clean, empty CSV of a field list someone already confirmed - the
transport format, with nothing invented and nothing hidden.
Overview
Produces a CSV representation of a confirmed business schema. Use it for CSV templates,
import files, Excel-compatible CSV, a Notion import CSV, a database staging CSV, or a
handoff file between systems.
CSV is data transport, not a database. This is a helper: it defines no table of its own
and renders whatever field list the active module already confirmed, so the header here
is the same header the module emits.
Layer: n/a. Fits: every stage. Table code: n/a - it renders the active module's table.
When to Use This Skill
- give me a CSV template
- export this as a CSV
- I need a file to import into another system
- stage this data for a load
- hand this over to another team as a CSV
- make it Notion-importable
Also use it when a module has confirmed a field list and the user wants that list as a
file for a system that is not this repository's.
Do not use it when the user asked only for a mapping, an explanation, or a different
format. Then output only what was asked for.
How It Works
Follow the shared execution contract. The module-specific rules below define only domain fields, decisions, calculations, and safety constraints.
Step 1 - Identify intent
Read the request and pick the intent before asking anything.
- "a template" -> an empty CSV template: header row, no data rows.
- "with a couple of rows to see the shape" -> a CSV with example rows, only when asked,
and obviously fake.
- "this import rejected my file", "the columns are wrong" -> CSV correction: only the
columns or escaping that was asked for.
- "what goes in which column" -> CSV column mapping: the mapping, no file.
- "for Notion", "to load into the accounting package" -> CSV for import into that system,
which may need an encoding or a delimiter the user names.
Default to no example rows and to UTF-8:
example_rows: false
encoding: UTF-8Use UTF-8 with a byte order mark when Excel compatibility matters. Ask for a delimiter
only when the target system is one the user has named and its delimiter is not a comma.
Step 2 - Ask only what is missing
Reuse everything already confirmed, including by the module that owns the field list: the
field names and types, the select options, the date and currency fields, the statuses and
the IDs. Never ask again for information the user has already supplied.
Ask one short question per message, and only when the answer changes the file:
> Q: Do you want the header only, or a couple of example rows?
> Q: Which system is importing this file?
If the answer does not materially change the result, do not ask.
Step 3 - Hold the internal context
Hold the answers in this shape. It stays internal - it is not shown to the user unless
they ask, and it never carries a value the user did not give.
module: csv-manual-export
intent: null # set in Step 1, one of: template, examples, import, correction, mapping
source_module: null # the module whose field list this renders
target_system: null # named only when the user names one
delimiter: ","
encoding: UTF-8
bom: false # enable for a confirmed Excel workflow; do not force on other importers
example_rows: false
confirmed_facts: [] # only what the user actually said
open_questions: [] # the unanswered ones, in the order worth askingsource_module is the one field this skill needs that a module skill does not have. If it
is unknown, ask which list to export, because a header invented from a guess is a header
the user has to fix by hand.
Step 4 - Recommend the smallest workflow
Produce an already requested output without asking again. For advice-only requests, give a short recommendation and offer the relevant output.
Recommended approach: one UTF-8 file, a header of the exact field names in the
canonical order, and no rows. Add a one-line type note beside it if the importing system
needs one.
Why this one: a CSV carries no types, formulas, relations or validation. The file is
the easy half; the columns that come in as Text on the far side are the half that decides
whether the import was worth doing.
Workflow: Field list confirmed -> Header written -> Encoding and delimiter set ->
(imported) -> Column types set on the far side
Step 5 - Build only on request
Once the user asks, emit the CSV as data only. Keep prose outside machine-readable data; provide file links and material limitations separately.
Do not add SQL, JSON or a Notion mapping unless it was asked for - a file plus a paragraph
of explanation is not what "just the CSV" means.
The header
Every header comes from the confirmed field list, in the canonical order. Never rename a
column silently, reorder columns without reason, invent a column, or drop a field.
Empty by default
Field 1,Field 2,Field 3No data rows. Leave a generated ID column blank in an empty template unless the target
system requires a value, and never invent production IDs.
Example rows
Only when the user explicitly asks, and then the rows are obviously fake, internally
consistent, non-sensitive, and presented as documentation. Never present a sample row as
a real record.
Escaping
Valid CSV, always. Quote a value that contains a comma, a quote or a line break, and
double any embedded quote. Parsing is necessary but does not verify schema, spreadsheet interpretation or successful import.
Types, stated separately if needed
CSV does not enforce types. If the target needs them, give the mapping beside the file:
| Column | Intended type |
|---|---|
| Amount | Currency |
| Due Date | Date |
| Status | Select |
Never claim the CSV itself enforces these types. Money stays numeric with no currency
symbol in the cell, because the currency is a separate fact the user confirms; when the
source schema embeds a currency, follow the source.
Dates
ISO YYYY-MM-DD when a machine-readable date is needed, or the format the user names.
Never invent a missing date, and never write today's date into a blank cell to fill it.
Before you hand it over
Headers match the canonical schema?
Correct order?
No invented values?
No accidental example row?
Valid CSV escaping?
Encoding appropriate for the target system?Field Reference
This skill has no Field Reference of its own, and it must not grow one. The active
module's Field Reference is the single source: the header written here is the header that
module emits, in the same order, so the two cannot drift.
If the field list is not in front of you, read skills/<slug>/SKILL.md for the module in
play. If it is missing or ambiguous, ask which list to export and stop.
Input Modules
A helper has no field list of its own, so its input is a module: the Field Reference
that module already confirmed. Read that section - field names, types, order,
requiredness, options and calculations - and render exactly that. The list below is
every module that owns a field list, grouped by the layer its catalog gives it, and it
is generated from those catalogs and the module files, but this static inventory can drift; check the actual source module and confirmed field list rather than trusting listed field counts. <support-root>/references/catalog.md is an external collection index, not bundled here; locate and inspect it before depending on it. Do not claim an unavailable lookup succeeded; the module's own
SKILL.md holds the field list.
Layer 1: Foundation - 6 modules
skills/access-matrix/SKILL.md- Access Matrix (16 fields)skills/organization-design/SKILL.md- Organization Design (13 fields)skills/policy-acknowledgement/SKILL.md- Policy Acknowledgement (12 fields)skills/policy-library/SKILL.md- Policy Library (14 fields)skills/sop-company-wiki/SKILL.md- SOP & Company Wiki (12 fields)skills/accounting-software-selection/SKILL.md- Accounting Software Selection (57 fields)
Layer 2: Acquire - 3 modules
skills/candidate-talent-pool/SKILL.md- Candidate Talent Pool (17 fields)skills/recruitment-pipeline/SKILL.md- Recruitment Pipeline (21 fields)skills/salary-benchmarking/SKILL.md- Salary Benchmarking (13 fields)
Layer 3: Onboard - 9 modules
skills/asset-it-management/SKILL.md- Asset & IT Management (19 fields)skills/buddy-program-manager/SKILL.md- Buddy Program Manager (12 fields)skills/company-email-accounts/SKILL.md- Company Email & Accounts (23 fields)skills/intern-program/SKILL.md- Intern Program (20 fields)skills/offer-appointment/SKILL.md- Offer & Appointment (18 fields)skills/onboarding-playbook/SKILL.md- Onboarding Playbook (9 fields)skills/people-directory/SKILL.md- People Directory (28 fields)skills/pre-boarding/SKILL.md- Pre-boarding (14 fields)- `skills/p
… (full content is in the download package)
Related skills
- ctr-predictor – CTR Predictor. Use when working with impressions and an explicitly supplied CTR…
- customs-trade-compliance – Codified expertise for customs documentation, tariff classification, duty optimisation…
- daily – Documentation and capabilities reference for Daily
- dali-short-address-commissioner – Commissions DALI and DALI-2 (IEC 62386) lighting buses: short-address assignment (0-63)…
- similarity-search-patterns – Implement efficient similarity search with vector databases. Use when building semantic…
- meetings – Use when someone wants to decide whether a meeting is worth calling, price a meeting in…
- ddd-context-mapping – Map relationships between bounded contexts and define integration contracts using DDD…
- decision-navigator – Guide stuck or overwhelmed users through targeted branching questions until they reach…