timefold-write-report
Assembles any Timefold audit/review/comparison/explanation report with the standard conventions: a datetime-stamped filename, a metadata block (run date/time…
Skill by TimefoldAI
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/timefoldai-timefold-write-report
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, security, writing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/timefold-write-report
What's inside
- Skill name
timefold-write-report- Description
- Assembles any Timefold audit/review/comparison/explanation report with the standard conventions: a datetime-stamped filename, a metadata block (run date/time, who ran it, which source the findings came from, the version of the skill that produced them, and the requested scope) right under the title, and a footer crediting that skill. The metadata block is what makes the report re-groundable later, by a human reader or by an agent that picks the file up in a fresh session. Output is Markdown, either as a saved file or as chat output. Use whenever writing or updating a report from Timefold skills or agents, or when another skill's instructions say to follow this skill's report conventions.
- License
- Apache-2.0
- Instructions
- 203 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Write report skill
This skill governs *how a report is assembled, and whether/where it's saved*, not what its findings say.
Whatever skill/agent gathered the findings still owns the report's content and structure. This skill adds
the metadata block, the footer, the save-vs-chat decision, and file-placement conventions on top.
## Why this exists
A report has two readers, and the metadata block is what serves both.
The **human reader** needs to know whether to trust the findings. A report is a point-in-time snapshot: it
was produced by reading one specific state of a dataset or a codebase, evaluated against a checklist or a
process that itself changes over time. Without recording exactly *when* it ran, *against which source*, and
*with which version* of the skill, a reader can't tell a current finding from a stale one, or a full run from
a narrowly scoped one.
The **next agent** needs to pick the report up cold and keep working. A report often outlives the
conversation that produced it. Someone reads it a week later, has a specific follow-up question, and hands
the file to an agent. That agent has none of the original conversation. Everything it needs to re-fetch the
same source data and answer the follow-up correctly has to be written down in the report itself. Metadata
that identifies the source precisely is what turns a report from a dead document into reusable context.
Both readers are served by the same block, so every report-producing skill should carry it rather than each
one inventing its own (or, worse, omitting it).
The output is Markdown, either a file or chat. That is deliberate. Markdown reads well for a person and
loads cleanly as context for an agent. Rendering, styling, and combining the report with other data are the
user's call, not this skill's.
## When to use
Invoke this skill (or read it directly, if you're a skill/agent already in motion) right before presenting a
report, whether as a saved file or in chat, after the findings themselves are already gathered.
## Language
A report is prose written for a Timefold audience, same as any other doc this plugin produces. Write every
part of the report you control directly (the metadata block, the summary, the requested-scope line, the
footer) following the `language-guidelines` skill, which ships next to this one in the same plugin (US
English, no em dashes, active tense, contractions welcome but not required, serial commas, numbers one
through ten spelled out, and so on). If the calling skill/agent supplies the findings prose itself, point it
at the same skill rather than restating the rules here.
## Step 0: Confirm the user actually wants the report as a saved file or in chat output
The skill can report findings in two ways: either write a report file to disk, or just present the findings
in chat. The latter is useful for quick checks, iterative runs, or when the user wants to see the findings
before deciding whether to save them. The former is useful for permanent records, PR attachments, or when
the user explicitly asked for a report file.
Before proceeding to Step 1, check:
1. If the user's instructions for this run already make the choice clear (e.g. "save this as a report",
"write it to reports/", or conversely "just show me", "don't save it"), use that and skip the question.
2. Otherwise, ask the user which they prefer for this run.
This applies per run, not per session: a saved-file choice on an earlier run doesn't carry over to a later
re-run in the same conversation without asking again, since the user may be iterating and only want the
final run persisted.
Markdown is the only output this skill produces. Don't offer to render the report as a PDF, a Word document,
or a Google Doc, and don't offer to brand it. If the user asks for one of those, say that the skill writes
Markdown and let them convert or restyle it with whatever tool they already use.
## Step 1: Gather the metadata
Run these before presenting the report:
- **Run date + time:** `date "+%Y-%m-%d %H:%M:%S %Z"`
- **Run by:** prefer a logged-in user identity if the session exposes one (e.g. a `userEmail` context
variable injected into the environment/system-prompt info at the start of the conversation) over the
bare machine name. If a user identity is available, use it as the primary value and append the machine
name in parentheses. If no user identity is exposed in this session, fall back to `hostname` alone.
Never call a tool or ask the user to fetch this. Only use what's already present in context. Guessing
or inventing an identity is worse than the machine-name fallback.
- **Source**: what the findings were read from, precisely enough that someone can go back to it. The
calling skill names its own source. Two common shapes:
- *A git repository*, when the report is based on code or docs read from one:
```bash
git -C <repo_root> remote get-url origin
git -C <repo_root> branch --show-current
git -C <repo_root> rev-parse --short HEAD
```
If the report spans multiple repos or multiple targets within one repo (e.g. a cross-model comparison),
gather this once per distinct repo+branch. Collapse into a single bullet if every target shared the same
repo+branch, otherwise list one bullet per distinct source. If the real repo genuinely isn't accessible
(e.g. a simulated or dry-run report), say so as a separate sentence after the bullet's value, not as a
dash-joined aside.
- *A live source*, such as an API dataset. The calling skill supplies the identifiers, and it should
supply enough of them to fetch the same data again: which tenant, which dataset, which model, which
API base URL. See "Make the block enough to re-ground on" below.
- **Skill/plugin version**: identify the skill and plugin who produced the report's *findings* (not
necessarily this skill), and read the version from where that skill is *installed*. Do not look in the
working directory. Skills run inside the user's project, and that project is not the plugin, so a
`.claude-plugin/plugin.json` lookup relative to the working directory finds nothing and the version comes
out empty. Anchor on the generating skill's own directory instead: in Claude Code that is
`${CLAUDE_SKILL_DIR}`, and `${CLAUDE_PLUGIN_ROOT}` is its plugin's install directory, both substituted
into a SKILL.md body. Read the `version` field from `${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json`.
Some installs copy skill folders without the manifest, so if the generating skill ships a version stamp
of its own, prefer that. The calling skill says where its version lives.
- **Requested scope**: a plain-language summary of what was actually asked of the generating skill/agent for
this run: which target(s), which categories/types, any filters, exclusions, or non-default options.
Pull this from the actual instructions the generating skill/agent was invoked with, not from what the
skill/agent is capable of in general. If nothing was scoped down (e.g. the user asked for a full,
unqualified run) say so explicitly (e.g. "No scope restrictions requested") rather than
leaving it vague. This is what lets a reader later tell a partial/scoped run apart from a complete one
without having to reread the conversation that produced it.
## Step 2: Metadata block
Insert immediately after the title (and italic subtitle, if the report has one), before the first content
section:
```markdown
## Report metadata
- **Run date:** 2026-07-16 11:23 CEST
- **Run by:** you@example.com (your-machine)
- **Source repository:** org/repo (branch `branch-name`, commit `abc1234`)
- **Skill plugin version:** plugin-name vX.Y.Z (`skill-name` skill)From TimefoldAI/skills, Apache-2.0.
More from TimefoldAI/skills
- 0.565score
explain-dataset-ess
TimefoldAI
Helps users of the Timefold Employee Shift Scheduling (ESS) model understand an optimized schedule by fetching and interpreting the dataset via the API.
SkillAFreshness: AClaude Code +9 - 0.565score
explain-dataset-fsr
TimefoldAI
Helps users of the Timefold Field Service Routing (FSR) model understand an optimized route plan by fetching and interpreting the dataset via the API.
SkillAFreshness: AClaude Code +9 - 0.565score
explain-dataset-pdr
TimefoldAI
Helps users of the Timefold Pick-up and Delivery Routing (PDR) model understand an optimized route plan by fetching and interpreting the dataset via the API.
SkillAFreshness: AClaude Code +9 - 0.557score
explain-dataset-shared
TimefoldAI
Shared instructions for the explain-dataset skill.
SkillAFreshness: AClaude Code +9 - 0.524score
language-guidelines
TimefoldAI
Timefold's language rules and terminology for any user-facing writing, including docs, blog posts, LinkedIn/YouTube copy, changelogs, GTM research, battle…
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 10, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/TimefoldAI/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from TimefoldAI
- 0.565score
explain-dataset-ess
TimefoldAI
Helps users of the Timefold Employee Shift Scheduling (ESS) model understand an optimized schedule by fetching and interpreting the dataset via the API.
SkillAFreshness: AClaude Code +9 - 0.565score
explain-dataset-fsr
TimefoldAI
Helps users of the Timefold Field Service Routing (FSR) model understand an optimized route plan by fetching and interpreting the dataset via the API.
SkillAFreshness: AClaude Code +9 - 0.565score
explain-dataset-pdr
TimefoldAI
Helps users of the Timefold Pick-up and Delivery Routing (PDR) model understand an optimized route plan by fetching and interpreting the dataset via the API.
SkillAFreshness: AClaude Code +9 - 0.557score
explain-dataset-shared
TimefoldAI
Shared instructions for the explain-dataset skill.
SkillAFreshness: AClaude Code +9 - 0.524score
language-guidelines
TimefoldAI
Timefold's language rules and terminology for any user-facing writing, including docs, blog posts, LinkedIn/YouTube copy, changelogs, GTM research, battle…
SkillBFreshness: BClaude Code +9
Cite this page
timefold-write-report skill. Agent Mart. https://agentmart.dev/skills/timefoldai-timefold-write-report (last updated 2026-10-24)