Agent skill

Herald Docs

by iamlukethedev in iamlukethedev/Herald-OS

Write and edit documents in Herald Docs, the word processor in Herald OS - letters, cover letters, CVs, reports, memos, meeting notes, proposals, essays and newsletters drafted from a brief or a…

MITAuto-check passedDocuments & Office

Install Herald Docs

skills CLI
$ npx skills add iamlukethedev/Herald-OS --skill herald-docs -a claude-code

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

GitHub CLI
$ gh skill install iamlukethedev/Herald-OS herald-docs --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/iamlukethedev/Herald-OS.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/herald-os-bridge/skills/herald-docs .claude/skills/herald-docs && 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
herald-docs
GitHub stars
365
Token cost
~6k tokens
SKILL.md length
3,273 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Write and edit documents in Herald Docs, the word processor in Herald OS - letters, cover letters, CVs, reports, memos, meeting notes, proposals, essays and newsletters drafted from a brief or a…

  • Works in 5 steps: Find the document. docs action=list… → Read before you write. docs action=read… → Write Markdown. content is Markdown: #… → …
  • Tasks that involve Resume and CV writing
  • SKILL.md covers The workflow, Drafting from a brief, Marked and selected text and Formatting, plus 12 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Herald Docs is an agent skill from iamlukethedev/Herald-OS. Write and edit documents in Herald Docs, the word processor in Herald OS - letters, cover letters, CVs, reports, memos, meeting notes, proposals, essays and newsletters drafted from a brief or a template, rewrites of the text Herald marked for a request (shorter, longer, another tone, another language, spelling and grammar), reviews that comment on clarity, grammar and tone, summaries, formatting and paragraph styles, find and replace, tables, pictures, a Herald Sheets range as a table in a report, headers and…

Its SKILL.md is about 6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering Resume and CV writing, Newsletters and Proposals and quotes. The repository describes itself as: An agent-native operating system, with Hermes Agent as the interface. Independent project, not affiliated with Nous Research. The licence is MIT.

When your agent uses it

  • Tasks that involve Resume and CV writing
  • Tasks that involve Newsletters
  • Tasks that involve Proposals and quotes

Example prompts

  • “/herald-docs”

Workflow steps

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

  1. Find the document. docs action=list shows what is open in Herald Docs: each document's
  2. Read before you write. docs action=read gives the outline, the word count, the page and
  3. Write Markdown. content is Markdown: # headings, bold, *italic*, lists, - [ ]
  4. One call, one step. Every call is one step the person can undo (Ctrl+Z, ⌘Z on a Mac, or
  5. Check, then say it in a sentence. Read back what you changed (`docs action=read

What it can do on your machine

Read from SKILL.md and the folder at commit 1b35085. 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

    No scripts in the folder and no shell commands in SKILL.md.

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

  • Network

    No URLs in SKILL.md.

    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

Herald Docs loads about 6k tokens when it runs. Until then it costs about 201 tokens; SKILL.md has 3,273 words of instructions outside code blocks.

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

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 iamlukethedev/Herald-OS at commit 1b35085, republished under its MIT licence (© iamlukethedev). 3,273 words, ~5,966 tokens.

Download SKILL.mdSave it as .claude/skills/herald-docs/SKILL.md (or your agent's skills folder).
name
herald-docs
description
Write and edit documents in Herald Docs, the word processor in Herald OS - letters, cover letters, CVs, reports, memos, meeting notes, proposals, essays and newsletters drafted from a brief or a template, rewrites of the text Herald marked for a request (shorter, longer, another tone, another language, spelling and grammar), reviews that comment on clarity, grammar and tone, summaries, formatting and paragraph styles, find and replace, tables, pictures, a Herald Sheets range as a table in a report, headers and footers with page numbers and dates, fields, footnotes and endnotes, page setup and sections, comments and replies, tables of contents, templates, statistics such as word count and reading time, saving Word, Markdown and text files and exporting PDFs, all through the docs tool

Herald Docs

Herald Docs is the word processor built into Herald OS. It opens and saves Word documents (.docx), Markdown (.md) and text files (.txt), and the person watches every change land in the Docs window. Use the docs tool whenever they want a document written or changed: "write a cover letter for this job", "make this paragraph friendlier", "turn my notes into a report", "put the budget table in the report", "fix the typos", "add page numbers", "review this", "export it as a PDF". Code, configuration and other plain files are for your file tools; reading a PDF is system_documents.

The workflow

  1. Find the document. docs action=list shows what is open in Herald Docs: each document's name, path, unsaved edits, the one in front (active) and the text selected in it. docs action=list_all adds what is open in Herald Sheets and Slides, and os_ui action=state carries the same list as office. "This document" is the one in front. Name a document by its file (document="~/Documents/Report.docx") or by its tab (document="Untitled 2"); left out, a call works on the one in front.
  2. Read before you write. docs action=read gives the outline, the word count, the page and the content as Markdown. On a long document read part=outline first, then a section at a time (heading="Findings", or heading=3 for the third heading); content is cut at maxChars (20000). part=comments, notes, headers (headers and footers), sections or tocs (tables of contents) gives those, and the other reads say which of them the document has. docs action=find text="deadline" lists each place a phrase appears, with the words around it and the heading it is under.
  3. Write Markdown. content is Markdown: # headings, **bold**, *italic*, lists, - [ ] task lists, tables, links, > quotes, code, and pictures from files (![Sales by month](~/Pictures/sales.png)). at says where it goes: end (the default), start, selection (in place of what is selected, or at the caret), marked (in place of the text marked for the request), after (under the paragraph the marked text is in, or the selection when nothing is marked), or heading with heading= and mode=append (the end of its section, the default), prepend (right under the heading) or replace (the section's text, keeping the heading). One paragraph written at the selection joins its line of text. selection, marked and after need the document open in its window; a file on disk takes end, start or a heading.
  4. One call, one step. Every call is one step the person can undo (Ctrl+Z, ⌘Z on a Mac, or docs action=undo, with steps=3 for several). Land a whole change in one call. Several changes, in one place or all over the document, go in one docs action=edit (below), never a string of small calls.
  5. Check, then say it in a sentence. Read back what you changed (docs action=read heading="Summary") before you say it is done, and say what changed, not how.

An open document changes in its window, where the person sees it. A file that is not open is read, changed and written straight back to disk: the person is asked first every time, Herald backs the original up the first time it writes over it, and it refuses when the file holds something it cannot keep (see the end). Then open it (docs action=open path="~/Documents/Report.docx"; the answer gives its outline and lists what Herald shows differently from the file) and work in the window, where the person saves when they are happy.

Drafting from a brief

  • Ask nothing you can infer. The person's name, the date, the recipient and the facts they gave you go straight in. Something only they know becomes a short placeholder in brackets ([phone number]), and you say which ones are left to fill.
  • Give it a shape: a title, a heading for each part, short paragraphs, lists for steps and options, a table for figures. Match the length to the job: a cover letter fits on one page (250 to 400 words), a memo is short, a report opens with its summary.
  • Match the tone to the reader: warm and plain for a personal letter, direct for a memo, formal for an official one. Write in the language the person writes to you in, unless they ask for another.
  • Write the whole draft in one call:
docs action=new name="Cover letter - Product designer" content="Dear Hiring Manager,\n\nI am writing to apply for the Product Designer role at Acme, which I saw on your careers page. ...\n\nKind regards,\n\n[Your name]"
  • Templates give a document its look: a page, styles, headers and footers, and sample text to replace. docs action=list_templates lists Herald Docs' own, each with what it holds (blank, letter, cover-letter, cv, report, memo, meeting-notes, essay, project-proposal, newsletter, invoice, thank-you-note and recipe), and the ones the person saved. docs action=new template=report name="Q3 report" starts one with its sample text, for the person to fill in, or for you to replace section by section after a read.
  • For a real draft give the content too: docs action=new template=cover-letter content="..." keeps the template's page, styles, headers and footers and puts your content in place of all its sample text, so write the whole document, title and headings included. A header or footer may still hold sample words (a report's header says "Report Title"): read part=headers and set them (below). A template the person saved goes by its name, and resume, proposal or meeting notes work too.
  • size=a4 (letter, legal or a5) picks the paper of a new document; left out, the locale's.
  • path saves the new document at once (path="~/Documents/Q3 report.docx"), never over a file that exists: give it only when the person said where. Otherwise the document stays unsaved until they save it or ask you to.

Marked and selected text

When the person asks Hermes about text they selected in Herald Docs, Herald marks that text (it stays tinted while you work) and the request says text is marked for it. docs action=read part=selection gives it as marked, and what is selected now as selection. When nothing was selected, the caret's place is marked instead, and at=marked writes there.

  • Rewrite, shorten, expand, change the tone, translate, fix the spelling and grammar: write the new text with at=marked. It replaces exactly the marked text as one step, even when the person has clicked elsewhere since. Keep its language (unless asked to translate), its formatting (bold, links, lists, headings), and the facts, names and numbers in it; change only what was asked.
  • Summarise, explain, list the action items, suggest a title: leave the text as it is. A summary or note goes under it with at=after, which is under the marked text's paragraph even when the person has clicked elsewhere since. A question gets its answer in your reply.
  • Without marked text, "this paragraph" and "what I selected" are the selection: read part=selection and write at=selection. With nothing selected, find the part by its words (find) or ask which part they mean.
docs action=read part=selection
docs action=write at=marked content="Thank you for your patience while we looked into this. ..."
docs action=write at=after content="**In short:** the supplier missed two deadlines and has offered a 10% credit."

Formatting

Write structure in Markdown as you write; use format for what Markdown cannot say. at picks what it applies to: selection (the default), marked, all, heading (the heading line), section (a heading and its section, with heading=) or text (every place text= appears; caseSensitive, wholeWord or regex narrow it).

  • Paragraph styles: style= normal, title, subtitle, heading1 to heading6, quote or code.
  • Marks: bold, italic, underline and strike (true or false), color and highlight (any CSS colour; none takes one off), font, size in points ("0" goes back to the style's), link (a web address, or none), and clear=true to clear the formatting first.
  • Paragraphs: align=left, center, right or justify; lineSpacing=1.15 (1, 1.15, 1.5, 2).
  • The page: docs action=page size=a4 orientation=portrait margins="2cm"; more under Sections and page setup.
docs action=format at=text text="Herald OS" bold=true color="#1f6feb"
docs action=format at=section heading="Appendix" size="10"
docs action=format at=all font="Georgia" lineSpacing=1.15

Find and replace keeps the formatting where each match starts: docs action=replace find="Acme Ltd" replacement="Acme Group" wholeWord=true changes every match (all=false only the first), and leaving replacement out deletes the matches.

Tables and pictures

  • A table: a Markdown table inside content, or docs action=table cells=[["Item", "Cost"], ["Flights", "$1,240"], ["Hotel", "$860"]] at=after. The first row is the header unless header=false; rows=4 cols=3 makes an empty one. Its columns share the text width.
  • A picture from a file (PNG, JPEG, GIF, WebP, BMP or SVG): docs action=image source="~/Pictures/team.jpg" alt="The team at the offsite" width=480 at=after, or ![alt](~/path.png) in Markdown. It is never wider than the text.
  • Figures from Herald Sheets: docs action=insert_range workbook="~/Documents/Budget.xlsx" range="A1:D12" at=heading heading="Costs" puts the range in as a table, as its cells show (formatted numbers and dates). Without range it takes the workbook's selection, or else the cells that hold something.

Headers, footers and page numbers

docs action=set_footer content="Page {page} of {pages}" align=center numbers every page at its foot, and set_header writes the top of the page the same way. content is Markdown, a line or a few, and replaces what the header or footer said: {page} is the page number, {pages} the page count, and {date} and {time} are today's ({date:d MMMM yyyy} with a picture of your own), kept up to date as the pages change. align is left, center or right.

  • kind=first writes the first page's own and kind=even the even pages' own (the default ones then go on odd pages), and turns that option on. set_header_options differentFirst=true alone gives a title page no header or footer; false turns it off again, and differentOddEven works the same way.
  • clear_header and clear_footer take one kind away (kind=first), or every one when kind is left out, and ask the person first.
  • docs action=read part=headers shows what each one says, with {page} and {pages} where those fields are. A document has one set, shown in every section.
  • A page number, page count, date or time in the text itself is a field: docs action=insert_field field=date format="d MMMM yyyy" quote="Dated:" puts today's date right after those words (field=page, pageOfPages for "Page 2 of 9", pages, date or time). Without quote it goes at the caret (at=selection), in place of the marked text, or on a line of its own at the end or where heading says.
docs action=set_header content="**Acme** · Q3 report" align=right
docs action=set_footer content="Page {page} of {pages}" align=center
docs action=set_header_options differentFirst=true

Footnotes and endnotes

docs action=insert_note quote="grew by a third" content="Office for National Statistics, 2025." puts a footnote's number right after those words and the note at the foot of the page; kind=endnote puts the note at the end of the document instead. Notes are numbered in the order they come. Without quote the number goes at the caret or the marked text, or at the end of the text where at and heading say. docs action=list_notes (or read part=notes) lists them by name ("footnote 2", "endnote 1"), with what each says and the words its number follows; set_note note="footnote 2" content="..." changes one, and remove_note note="footnote 2" takes it and its number out (the rest are numbered again), asking the person first. Markdown written with write can hold footnotes too (grew by a third[^1], and a line [^1]: The source.).

Sections and page setup

docs action=page sets the paper, orientation and margins: size=a4 (letter, legal, a5, or width by height like "8.5x11in"), orientation=landscape, margins="2cm" for all four or top, right, bottom and left for one side each, and headerDistance and footerDistance for how far the header and footer sit from the edges. Lengths are points, or "1in", "2cm", "20mm".

A section break starts pages that can have a setup of their own: landscape pages for a wide table, an appendix with other margins. docs action=insert_section_break quote="Appendix" orientation=landscape starts a new section on a new page after the paragraph with those words (kind=continuous keeps it on the same page, and oddPage or evenPage starts the next odd or even page), with the page you give it, or else the page of the section it is in. For one wide table, break before it with orientation=landscape and after it with orientation=portrait.

  • docs action=list_sections (or read part=sections) lists the sections in order, each with its number, how it starts, its page and its first words.
  • page without section changes the document's page (the first section's, and that of the sections that keep it); page section=2 margins="1in" changes one section's alone, and section=all every section's.
  • remove_section_break section=3 joins section 3 to the one before it, whose page it takes, and asks the person first.
Show full SKILL.md (1,272 more words)Show less

Tables of contents

docs action=insert_toc quote="Q3 report" levels=3 puts a table of contents after the title (the paragraph with those words), listing Heading 1 to Heading 3 with the page each is on, under the title "Contents" (title="In this report", or title=none for no title). Without a place it goes at the start, and heading="Summary" mode=before puts it right before a heading. Its entries follow the headings as they change; after headings change or text moves to other pages, update_tocs brings its page numbers up to date. set_toc levels=2 (or title) changes one (toc=2 for the second), remove_toc takes one out and asks first, and read part=tocs lists them.

Comments

docs action=read part=comments (or list_comments, with heading= for one section) gives each comment's id, author, date, what it says, the words it is on (quote), the heading it is under, whether it is resolved, and its replies.

  • add_comment quote="grew by a third" text="Against which year?" comments on those words (all=true on every place they appear); heading="Summary" comments on a heading's line, and at=selection or at=marked on what is selected or marked in an open document. The answer gives the new comment's id.
  • reply_to_comment comment=<id> text="..." answers a comment, edit_comment changes what a comment or a reply says, resolve_comment comment=<id> marks it resolved (resolved=false opens it again), and delete_comment comment=<id> deletes a comment with its replies (a reply's id deletes only that reply; all=true every comment in the document), asking the person first.
  • What you write is signed Hermes, so the person sees who said it. Each change is one step to undo, and an open document shows its comments beside the pages.
  • "Deal with the comments": read them, make the changes in one edit, and in the same batch reply to or resolve each one you dealt with ({"op": "resolveComment", "comment": "c3"}).

Reviewing a document

"Review this", "check the grammar", "is the tone right", "proofread my essay": a review comments on the text and leaves it as it is. Asking to fix or rewrite it is a rewrite (see Marked and selected text).

  1. Read the whole document first (docs action=read; when it comes back cut short, a section at a time with heading=), so every comment rests on text you have read. When the read says it has comments already, read them (part=comments) and repeat none. When text is marked for the request, review only that (part=selection).
  2. Make ONE add_comments call with every comment, so the review lands as one step the person can undo. Each comment goes on an exact quote of a short passage: a few words copied from one paragraph, without Markdown marks, enough to tell the place apart (a comment goes on the first match of its quote). Each says its kind and the fix: Clarity (vague, wordy or hard to follow), Grammar (spelling, grammar and punctuation) or Tone (what does not suit the readers). Comment only where a change would help, in the document's language, and keep to what was asked: a grammar check is about grammar. When nothing needs a comment, make no call and say so.
  3. Never rewrite the text in a review unless the person asks; they decide what to take. When they then say "fix them", make the fixes in one edit and resolve the comments you dealt with.
  4. Then say it in one line: how many comments of each kind and what most needs work ("9 comments: 4 grammar, 3 clarity, 2 tone; the summary buries the result").
docs action=add_comments comments=[
  {"text": "Grammar: 'affect' is the verb. Suggest: 'a big effect on sales'.", "quote": "a big affect on sales"},
  {"text": "Clarity: who decided? Suggest: name the team.", "quote": "it was decided"},
  {"text": "Tone: too casual for a client report. Suggest: 'We expect'.", "quote": "We reckon"}
]

The answer counts the comments added and lists any whose quote was not found (missing): make no second call for those, and say how many did not land. "all": true puts one comment on every place a slip repeats, and an item with heading in place of quote comments on a whole section.

Statistics

"How long is it", "how long will it take to read", "is it easy to read": docs action=statistics gives the words, characters (with and without spaces), paragraphs, sentences, words per sentence, reading and speaking time, reading ease (Flesch, 0 to 100, higher is easier, with what it means), the US school grade (Flesch-Kincaid), and the pages of an open document. heading= gives one section's and selection=true the selection's. They count the body, not notes, comments, headers or footers. Answer with the numbers asked for, in a sentence.

Several changes as one step

docs action=edit edits=[...] makes every change in order as ONE step to undo, each one seeing the document as the ones before left it. The ops: write (content, format, at, heading, mode), replace (find, replacement, all, caseSensitive, wholeWord, regex), format (the format arguments), table (cells, or rows and cols, header, at, heading, mode), image (source, alt, at, heading, mode), pageBreak (at, heading, mode) and page (the page arguments); and setHeader, setFooter, clearHeader, clearFooter, setHeaderOptions, insertField, insertNote, setNote, removeNote, insertSectionBreak, removeSectionBreak, addComment, addComments, replyToComment, editComment, resolveComment, deleteComment, insertToc, setToc, updateTocs and removeToc, each with the arguments of the action of the same words. A batch that takes something away (a header, a note, a comment, a table of contents) asks the person first, as that action does alone.

docs action=edit document="Report.docx" edits=[
  {"op": "write", "at": "start", "content": "## Summary\n\nSales rose 12% on last year, ..."},
  {"op": "replace", "find": "DRAFT - ", "replacement": ""},
  {"op": "format", "at": "heading", "heading": "Summary", "color": "#1f6feb"},
  {"op": "pageBreak", "at": "heading", "heading": "Appendix", "mode": "prepend"},
  {"op": "setFooter", "content": "Page {page} of {pages}", "align": "center"}
]

Use it for "fix the typos" (one replace per mistake, with wholeWord=true, so the formatting stays), "make every heading blue" (one format per heading in the outline), "update the dates everywhere", "add page numbers and a table of contents" (a setFooter and an insertToc), and for filling in a template section by section (write with at=heading mode=replace for each one).

Work across documents

"Put the budget in the report and say what it shows": docs action=list_all finds both (or use their paths), sheets action=read workbook="Budget.xlsx" gives the headers and figures, then make one call to the report. When it needs only the table, that is docs action=insert_range. When it needs words around the figures too, make one docs action=edit with a write for the words and a table whose cells are the range as it shows (the read's text when it has one, else its values). Quote totals exactly as the sheet shows them, and keep one call per document so each one is a single step to undo.

Saving and exporting

  • Never save unless the person asks. An open document keeps its unsaved edits (its tab says so), and they save with Ctrl+S (⌘S on a Mac) or ask you to.
  • "Save it": docs action=save. Saving over the document's own file asks the person every time; the first time Herald writes over a file it shows what it cannot keep, and the original goes to Herald's Office backups. If they keep the file as it was, say so and leave it there.
  • A document never saved ("Untitled 2") needs a place: docs action=save to="~/Documents/Cover letter.docx". The extension picks the format: .docx, .md or .txt. A file that exists is replaced only with overwrite=true, which asks the person first.
  • A PDF: docs action=export_pdf writes a new PDF in ~/Documents, laid out as it prints, or to="~/Desktop/Report.pdf". Say where it went.

What Herald Docs cannot do yet

Tracked changes (shown accepted, and saved accepted), text in columns (shown and saved in one column), headers and footers of their own in later sections (the first section's show on every page), page numbering that starts again in a section, equations (shown as plain text), shapes other than pictures and text boxes, and embedded objects (shown as their pictures and not kept). Opening a file lists the ones it has. Say so plainly when a request needs one, and offer what works instead: a comment with the new wording in place of a tracked change, one column in place of several.

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

Files

Just SKILL.md in plugins/herald-os-bridge/skills/herald-docs of iamlukethedev/Herald-OS.

Open the folder on GitHubat commit 1b35085

Compare with similar skills

Herald Docs 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.

Herald Docs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Herald Docs this skilliamlukethedev/Herald-OS365—~6kAutomated safety check: PassMIT
Stakeholder Commsandreaskelm/pm-brain234—~2.8kAutomated safety check: PassCustom licence
Competitor Content Trackergooseworks-ai/goose-skills1.2k1 repos~1.4kAutomated safety check: PassMIT
Human Reviewpetergyang/human-review1.4k—~2.1kAutomated safety check: PassMIT
Resume CrafterLi-Baichuan-James/cv-skill153—~2.2kAutomated safety check: PassMIT
Upwork Proposal Writerabullaisi/upwork-skills1141 repos~3kAutomated safety check: PassMIT

Similar skills

  • Stakeholder Comms

    andreaskelm/pm-brain

    Write, tighten, or review written stakeholder communication: one-pagers, exec summaries, decision docs, status updates, newsletters, sprint summaries and sprint review updates, meeting agendas…

    234 GitHub stars~2.8k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Competitor Content Tracker

    gooseworks-ai/goose-skills

    Monitor competitor content across blogs, LinkedIn, and Twitter/X on a recurring basis.

    1.2k GitHub starsUsed in 1 repo~1.4k tokens
    Writing & ContentAuto-check passed
  • Human Review

    petergyang/human-review

    Open an HTML file, Markdown file, or localhost page in the browser so the user can edit text directly and leave comments on specific parts, then send all edits and comments back to you.

    1.4k GitHub stars~2.1k tokensUpdated 23 days ago
    Documents & OfficeAuto-check passed
  • Resume Crafter

    Li-Baichuan-James/cv-skill

    A skill your agent uses when creating, rewriting, or converting a source-backed 1-2 page resume from chat, documents, PDFs, images, or mixed artifacts.

    153 GitHub stars~2.2k tokensUpdated 5 mo ago
    Documents & OfficeAuto-check passed
  • Upwork Proposal Writer

    abullaisi/upwork-skills

    Draft or review an Upwork proposal (cover letter) using the five-move method extracted from a Top Rated Plus freelancer's winning proposals, corrected for the AI era.

    114 GitHub starsUsed in 1 repo~3k tokens
    Sales & SupportAuto-check passed
  • Document Design

    jamditis/claude-skills-journalism

    Creates print-ready HTML that exports to PDF. An agent skill from jamditis/claude-skills-journalism.

    416 GitHub stars~1.9k tokensUpdated 6 days ago
    Documents & OfficeAuto-check passed

More from iamlukethedev/Herald-OS

All 8 skills in this repo
  • Herald Os Tailor

    iamlukethedev/Herald-OS

    Change Herald OS itself - make and switch themes, fonts and the wallpaper, widgets, the menu bar, control-menu entries, branding, keybindings, settings, routines and hooks

    365 GitHub stars~2.8k tokensUpdated yesterday
    Auto-check passed
  • Herald Sheets

    iamlukethedev/Herald-OS

    Work in Herald Sheets, the spreadsheet in Herald OS - read workbooks, write values and formulas (a formula from a description, explaining one, filling it down), fill a column from examples, clean…

    365 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check passed
  • Herald Slides

    iamlukethedev/Herald-OS

    Make and change presentations in Herald Slides, the presentation editor in Herald OS - a deck from a topic (an outline first, a title slide, one idea a slide, short bullets, speaker notes, a closing…

    365 GitHub stars~4.8k tokensUpdated yesterday
    Auto-check passed
  • Herald Canvas

    iamlukethedev/Herald-OS

    Make and edit pictures in Herald Canvas, the layered image editor in Herald OS - posters, banners, thumbnails, collages and photo fixes through the canvas tool, with editable text and shape layers…

    365 GitHub stars~7.2k tokensUpdated yesterday
    Auto-check passed
  • Diagnose Crash

    iamlukethedev/Herald-OS

    Explain why a program crashed from its crash report or core dump, and whether it is worth reporting

    365 GitHub stars~964 tokensUpdated yesterday
    Auto-check passed
  • File Documents

    iamlukethedev/Herald-OS

    Find documents such as invoices among badly named files, read them, name them clearly and file them where the person keeps them, with a plan they approve and an undo

    365 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed

Questions about Herald Docs

What does Herald Docs do?

Write and edit documents in Herald Docs, the word processor in Herald OS - letters, cover letters, CVs, reports, memos, meeting notes, proposals, essays and newsletters drafted from a brief or a…. Herald Docs is an agent skill from iamlukethedev/Herald-OS.

When should I use Herald Docs?

Herald Docs fits situations like: tasks that involve Resume and CV writing; tasks that involve Newsletters; tasks that involve Proposals and quotes.

How do I install Herald Docs in Claude Code?

Run `npx skills add iamlukethedev/Herald-OS --skill herald-docs -a claude-code`. Or copy the skill folder (plugins/herald-os-bridge/skills/herald-docs in iamlukethedev/Herald-OS) into .claude/skills/herald-docs in your project. Claude Code loads it when a task matches its description.

How do I install Herald Docs in Codex?

Run `npx skills add iamlukethedev/Herald-OS --skill herald-docs -a codex`. Or copy the skill folder (plugins/herald-os-bridge/skills/herald-docs in iamlukethedev/Herald-OS) into .agents/skills/herald-docs in your project. Codex loads it when a task matches its description.

Can I use Herald Docs 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 iamlukethedev/Herald-OS --skill herald-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/herald-docs, .gemini/skills/herald-docs, .github/skills/herald-docs and .opencode/skills/herald-docs in your project.

What does Herald Docs need to run?

SKILL.md names no scripts, command-line tools or credentials: Herald Docs is instructions for the agent only.

Does Herald Docs access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Herald Docs 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 Herald Docs use?

Herald Docs 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 Herald Docs use?

About 6k tokens (SKILL.md is roughly 24k 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 Herald Docs?

Skills that share tags, products or a category with Herald Docs: Stakeholder Comms (andreaskelm/pm-brain, 234 stars), Competitor Content Tracker (gooseworks-ai/goose-skills, 1.2k stars), Human Review (petergyang/human-review, 1.4k stars) and Resume Crafter (Li-Baichuan-James/cv-skill, 153 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Herald Docs?

iamlukethedev (a GitHub user) maintains it in iamlukethedev/Herald-OS, which has 365 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 9, 2026.

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