Marker client report
Skill marker-io/mcp-skills/claude/skills/marker-client-report
Turn a project's completed Marker.io work into a client-ready report. Use when asked to write a weekly or monthly recap for a client, summarize what was shipped or fixed this period, or produce a status update for a website project from Marker.io. Read-only: it reads issues and writes a markdown report, it does not change issues.From its SKILL.md
npx -y skills add marker-io/mcp-skills --skill marker-client-reportAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.3 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
marker-client-report
Produce a polished, client-facing recap of what an agency completed on a website over a week or month, straight from Marker.io — grouped by page, written in plain language, ready to paste into an email or send as-is. Read-only.
When to use
"Write the weekly report for <client>", "what did we ship for <project> this month", "monthly recap
for the <site> work", "client status update from Marker". For analyzing recurring patterns rather than
reporting a period's work, use marker-insights; for triaging the open backlog, use marker-triage.
Inputs to confirm
- Which project (one client / site is usually one project; resolve per the operating rules).
- The window: default the last 7 days, or "last month" / last 30 days / an explicit date range.
- Whether to include sections beyond completed work: in-progress now, and newly reported this period. Default: completed only.
Steps
- Resolve the project and read
project_getfor its name andwebsiteUrls(the report header and the page mapping). - Decide which statuses count as completed —
ResolvedandClosedby default. Statuses are project-specific and can be renamed, so don't assume a customized board uses the English defaults: confirm which are in use by probingissues_listwith eachstatusvalue, and if it is unclear which statuses mean "done", show the candidates and ask. - Pull issues with
issues_list, paginatinglimit/offsetfully. Keep fields lean:markerId,title,status,url,createdAt,updatedAt. The MCP has no date filter, so window client-side: an item counts as completed this period when its status is one of the completed states and itsupdatedAtfalls in the window. - Classify each completed item as a content update (typo, copy, wrong number or fact, image, link,
layout) or a fix (functional bug). Marker does not expose an issue's type to read, so infer it
from the title and page URL; open
issue_get/issue_get_screenshotonly when the title is too thin to describe in client terms. - Group by page (from the URL relative to
websiteUrls), and within a page by content vs fix. - Write the report (see Output). Translate internal titles into client language: "Fix typo in intro paragraph" becomes "Corrected a typo in the Solutions page intro". Drop Marker jargon, statuses, and IDs from the client-facing copy.
Output
A markdown report client-report-<project>-<date>.md:
- A one-line headline: "This week we completed 12 updates across 4 pages of <site>."
- What we updated, grouped by page, each item a plain-language sentence. Separate content updates from fixes when both are present.
- Optional In progress and New this period sections when requested.
- A short closing line inviting feedback.
Keep a separate internal copy (or a footnote) with the Marker links and issue codes for the agency's own reference; keep the client-facing version clean.
Honesty about the data
Completion is dated by updatedAt because the Marker.io MCP exposes no resolved-at timestamp and no date
filter. An older issue that was re-touched (a late comment, a status change) in the window can therefore
appear; skim the list before sending and drop anything that was not really completed this period.
This skill is read-only. It does not change any issue.
Operating rules
This skill drives the Marker.io MCP. Read tools: projects_list, project_get, project_list_users,
list_issue_types, issues_list, issue_get, issue_get_context, issue_get_screenshot,
issue_get_attachments, issue_get_console_log, issue_get_network_request. Write tools:
issue_update_status, issue_update_assignee, issue_update_priority, issue_update_type,
comment_create.
- Resolve the project first. Call
projects_list(filter withsearchText). If more than one could match, show the candidates and ask which one. Never guess aprojectId. - Discover before you write. Status and issue-type strings are project-specific. Call
list_issue_typesandproject_getfor valid values before anyissue_update_*. Get user IDs fromproject_list_usersbefore assigning or @mentioning. - Read cheap, drill deep only when it matters. Start from
issue_get_contextsummaries; fetch a specificissue_get_console_log(logIndex)/issue_get_network_request(requestIndex)orissue_get_screenshotonly when it changes a decision. - Propose, then apply. Before any write, print a table of the planned changes (issue, field,
old to new). Apply via the
*_update_*/comment_createtools only after the user confirms. Default comment visibility toMember-onlyunless the reporter should see it. - Respect the limits.
issues_listdoes not return assignee (fetch per-issue viaissue_get). The MCP cannot create Marker.io issues. Never embed tokens; rely on the configured MCP auth.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.