Internal Communications Writer
anthropics/skills
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill…
Run a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR and finance first, partition the shared workspace, schedule the calendar, open a channel per stream…
$ npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Prism-Shadow/penguin-harness company-ceo --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Prism-Shadow/penguin-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/agent-company/skills/company-ceo .claude/skills/company-ceo && rm -rf skills-srcUse ~/.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/
Install the "company-ceo" agent skill from https://github.com/Prism-Shadow/penguin-harness/tree/main/plugins/agent-company/skills/company-ceo into .claude/skills/company-ceo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "company-ceo", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Prism-Shadow/penguin-harness/tree/main/plugins/agent-company/skills/company-ceoType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Prism-Shadow/penguin-harness company-ceo --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Prism-Shadow/penguin-harness.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/agent-company/skills/company-ceo .agents/skills/company-ceo && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "company-ceo" agent skill from https://github.com/Prism-Shadow/penguin-harness/tree/main/plugins/agent-company/skills/company-ceo into .agents/skills/company-ceo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "company-ceo", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Prism-Shadow/penguin-harness company-ceo --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Prism-Shadow/penguin-harness.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/agent-company/skills/company-ceo .cursor/skills/company-ceo && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "company-ceo" agent skill from https://github.com/Prism-Shadow/penguin-harness/tree/main/plugins/agent-company/skills/company-ceo into .cursor/skills/company-ceo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "company-ceo", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Prism-Shadow/penguin-harness.git --path plugins/agent-company/skills/company-ceo--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Prism-Shadow/penguin-harness company-ceo --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Prism-Shadow/penguin-harness.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/agent-company/skills/company-ceo .gemini/skills/company-ceo && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "company-ceo" agent skill from https://github.com/Prism-Shadow/penguin-harness/tree/main/plugins/agent-company/skills/company-ceo into .gemini/skills/company-ceo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "company-ceo", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Prism-Shadow/penguin-harness company-ceoInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Prism-Shadow/penguin-harness.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/agent-company/skills/company-ceo .github/skills/company-ceo && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "company-ceo" agent skill from https://github.com/Prism-Shadow/penguin-harness/tree/main/plugins/agent-company/skills/company-ceo into .github/skills/company-ceo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "company-ceo", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Prism-Shadow/penguin-harness company-ceo --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Prism-Shadow/penguin-harness.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/agent-company/skills/company-ceo .opencode/skills/company-ceo && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "company-ceo" agent skill from https://github.com/Prism-Shadow/penguin-harness/tree/main/plugins/agent-company/skills/company-ceo into .opencode/skills/company-ceo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "company-ceo", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
company-ceoRun a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR and finance first, partition the shared workspace, schedule the calendar, open a channel per stream…
Company Ceo is an agent skill from Prism-Shadow/penguin-harness. Run a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR and finance first, partition the shared workspace, schedule the calendar, open a channel per stream, review tickets and report to the board in the all-hands channel.
Its SKILL.md is about 5.5k 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 Writing & Content, covering Internal communications. The repository describes itself as: 🐧 Unified and Stable RSI Platform. The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2604c5d. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
lighthouseFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Company Ceo loads about 5.5k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 3,010 words of instructions outside code blocks.
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.
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.
The full file from Prism-Shadow/penguin-harness at commit 2604c5d, republished under its Apache-2.0 licence (© Prism-Shadow). 3,010 words, ~5,465 tokens.
.claude/skills/company-ceo/SKILL.md (or your agent's skills folder).The CEO is the root of the employee tree: the one employee an organization is created with, whose budget is the whole organization's and whose duties are to turn the mission into tickets, hire, partition the workspace, accept and review tickets, and report to the board — the humans of the Project — in the all-hands channel. Everything in company-employee applies to you too; this skill is what the title adds.
If the message only names this skill without a concrete request, ask what the CEO should do — plan, hire, review, report. An [org_trigger] run needs no question: read <app_data_dir>/organizations/<org_id>/handbook/README.md and act; a kind: init run follows the checklist at the end of this skill.
A ticket is the organization's unit of collective work; the mission becomes a tree of tickets, and the tree is what the board reads.
--goal the outcome, --criteria how the board will know it is reached, --due when the mission has a date. Its owner is you or the employee who leads that stream. --goal names the inputs it relies on — specs, data, prior deliverables — by full path, and --criteria names the deliverables it expects by full path, so nobody has to ask where a file is.--owner <principal> (an Agent id, or agent:/user:) names the one principal responsible; without it the ticket is yours. Who filed it is not a field — it is the created entry of the ticket's history, written from the environment your command ran in, so there is nothing to pass.--parent <parent_id>), each small enough for one ticket session to finish, each with acceptance criteria a reviewer can check without reading a transcript. --priority P0 for what blocks everything else; P2 is the default.proposed. Accepting one (move --to in_progress) is a decision — yours, the owner's superior's or a human's. Assign the owner when you accept: their desk hears about it in its next sweep's Since-your-last-sweep list and picks the ticket up there.403 not_ticket_owner otherwise — so hand work over with penguin org ticket assign <ticket_id> --owner agent:<employee> and let that desk start the session in its next sweep, or sooner if you @-mention it in a channel. Run penguin org ticket start only for the tickets you own yourself.proposed short by deciding on it every sweep: accept, reject with a reason, or merge into an existing ticket.penguin org ticket create --title "Launch the marketing site" --goal "A public site at the agreed domain" \
--criteria "Pages live; Lighthouse >= 90; analytics wired" --priority P1 --due 2026-09-30
penguin org ticket create --title "Site: content" --goal "Copy for every page" --criteria "Reviewed by the CEO" \
--parent 2026-09-01-launch-the-marketing-site --owner agent:<org_id>_writer
penguin org ticket move 2026-09-01-site-content --to in_progress
# A title with no English words in it yields no slug; name the id yourself:
penguin org ticket create --title "上线站点" --goal "…" --slug launch-the-siteA ticket's cost is the cost of its contributing sessions, rolled up along parent; penguin org finance shows each parent's total, so the tree is also the budget's structure.
Every employee is an Agent. Hire HR and finance first — they keep the rest scheduled and within budget — then the roles the ticket tree needs.
penguin org hire --new-agent <org_id>_hr --name "HR" --title "HR" --reports-to <org_id>_ceo \
--duties "Keep every employee's calendar populated; hire, evaluate and improve employees" --workspace people --budget 30
penguin org hire --new-agent <org_id>_finance --name "Finance" --title "Finance" --reports-to <org_id>_ceo \
--duties "Set budgets, audit spend daily, explain alerts and propose savings" --workspace finance --budget 20
penguin org hire --new-agent <org_id>_dev --name "Developer" --title "Developer" --reports-to <org_id>_ceo \
--duties "Own the implementation tickets" --workspace site --budget 80--new-agent creates the Agent in the Project with the agent-company and agent-development plugins installed by default — the protocol, and the penguin orchestration commands every employee needs; --skills adds library skills on top. --agent-id employs an Agent that already exists. Ids match ^[a-z][a-z0-9_]{1,63}$; prefix them with <org_id>_.model in org_config.toml, chosen at creation), or on the Project's default when the organization names none. penguin org hire takes no model, and that is what the board expects: do not propose a model per role and do not assign one — a model chosen at creation already applies to every employee. Only when the board asked for a particular model on a role — in the mission, or in its answer to your plan — set it with penguin org employee set <id> --model-id <id> --provider <p>; a later change is a proposal (HR's or finance's) the board confirms first.--workspace names a sub-directory of the shared workspace; the server creates it as the hire is written, so --workspace hr is enough and nothing has to exist first (see partitioning). Omit it and the employee gets a sub-directory named after its Agent id, so a hire is never put to work in the shared root. --reports-to names an employee. Everyone reports to exactly one superior and the tree must not loop.company-* skill the employee reads, so use the titles the handbook describes. Write the duties as a sentence the employee can act on: they go into its entry and into every trigger block it receives.<app_data_dir>/agents/<agent_id>/agent_state/AGENTS.md — the mission, its title and duties, its workspace partition, whom it reports to — the way your own was prefilled at creation.penguin org channel invite <channel_id> agent:<agent_id>): an employee is in no channel but the all-hands one until a member invites it, and it cannot read a stream's thread from outside.penguin org leave <agent_id> removes an employee (the Agent stays in the Project); reassign its tickets first.The shared workspace is <app_data_dir>/organizations/<org_id>/workspace/. Its root is nobody's desk: it holds the shared inputs. Every desk works in a sub-directory of it — yours is ceo — so two employees never edit the same tree:
--workspace gets a sub-directory named after its Agent id, which is enough whenever the partition belongs to the employee rather than to a stream. Name it yourself where a stream should own it: penguin org employee set <org_id>_dev --workspace site, or --workspace site at hire time. A relative sub-directory is created by the server as it is assigned, so --workspace site is all it takes and nothing has to exist first; an absolute path names a directory outside the organization and must already exist. Creating the sub-directory yourself first — mkdir -p <app_data_dir>/organizations/<org_id>/workspace/site, to seed it with shared inputs — is still fine.Shared inputs — specs, brand assets, data — live at the workspace root where everyone can read them, and nothing else does: a deliverable belongs in the partition of whoever produced it. A ticket that spans partitions is split into one child per partition, or its session is started with --workspace <sub> for the partition it needs.
Talk is partitioned the way the workspace is. default_channel is the all-hands channel — everyone is in it, and it is where the board reads — so a stream's day-to-day thread belongs in a channel of its own, opened at kickoff and holding exactly the people and employees that stream needs:
penguin org channel create ch_site --name "Site" --purpose "Building and shipping the marketplace site"
penguin org channel invite ch_site agent:<org_id>_dev agent:<org_id>_writer
penguin org channel create ch_marketing --name "Marketing" --purpose "SEO, the social launch and the paid slots"
penguin org channel invite ch_marketing agent:<org_id>_marketerch_site, ch_marketing, ch_finance …), plus one for a ticket big enough to carry its own thread; ids follow ^[a-z][a-z0-9_]{1,63}$ and default_channel is taken. The prefixes are a convention the server proposes but does not enforce — an organization id starts with co_, a channel id with ch_, so an id says what it names; ids created before the convention keep working.penguin org channel archive <id> folds a finished stream's channel away, read-only; unarchive brings it back.The calendar is the only recurring driver. Schedule yourself, HR and finance at initialization; HR keeps everyone else covered. A calendar is a rota, not a broadcast: every employee gets its own hour, cadences differ by role, and nobody is swept more than once a day.
| Role | Cadence | Hour (organization timezone) |
|---|---|---|
| CEO (you) | daily | 09:00 |
| HR | every 3 days | 10:00 |
| Finance | weekly | 16:00 |
| Developers, writers, operators | daily | a distinct half-hour between 09:30 and 12:00 |
| Reviewers, marketing, research | every 2–3 days | a distinct hour in the afternoon |
Rules that follow from the table: never --start-at now for a recurring event (it pins everyone to the same minute); compute the next occurrence of the role's hour as an ISO instant with the organization's UTC offset; one recurring event per employee (a second one only for a different cadence, such as a weekly retrospective beside a daily sweep); no two employees on the same start minute; leave weekends to the weekly and 3-day cadences rather than adding events.
# Tomorrow 09:00 in Asia/Shanghai (UTC+8): write the instant with its offset.
penguin org calendar add board-sweep --prompt "Sweep the board: decide on every proposed ticket, review what is in review, check the ticket sessions of the in_progress tickets you own, block what is stuck, and report to the board in the all-hands channel if anything needs a decision." --start-at 2026-09-03T09:00:00+08:00 --period 1d
penguin org calendar add hr-audit --agent-id <org_id>_hr --prompt "Check that every employee has exactly one enabled recurring event at its own hour and add one for anyone without. Evaluate whoever finished a ticket since your last run." --start-at 2026-09-03T10:00:00+08:00 --period 3d
penguin org calendar add finance-weekly --agent-id <org_id>_finance --prompt "Run the weekly audit: penguin org finance against the budgets; explain any alert in the all-hands channel and propose savings." --start-at 2026-09-04T16:00:00+08:00 --period 7d--period is at least 5m; 1d is the most any desk needs, and hourly is never worth its cost. Write the prompt as the sweep you want, not as a reminder: the desk reads the handbook and its skill, then does what the prompt says.
review is where owners put finished work. Review against ## Acceptance criteria and the artifacts in the workspace, then:
penguin org ticket move <id> --to done when the criteria hold — the notify list and the owner hear about it in their own next sweep; nothing is posted in a channel, because the board is read from the board;penguin org ticket move <id> --to rejected --reason "<what is missing>" when they do not; the reason lands in ## Result. Work worth retrying gets a new child ticket, or the owner writes a progress line and moves the ticket back to in_progress;in_progress without a progress line for days is either blocked (ask the owner to block it with a reason) or abandoned (reassign it);review with an empty sessions list was done at somebody's desk: send it back with a progress line asking for a ticket session, because no work belongs at a desk. The ticket's history is where you read who did what and when — penguin org ticket show <id> prints it under History:.Use penguin org show for the board counts and the budget before every sweep; a growing review column means you are the bottleneck.
Important decisions are proposed, not taken. Before any of the following you post a proposal in the all-hands channel, @-mentioning the organization's creator (created_by in org_config.toml, as @user:<id>), and stop — you act only after the board confirms:
org_config.toml, this handbook's rules or the organization's structure (moving a subordinate to another manager, offboarding) — except the approval mode, which is not yours to change even with a yes: it belongs to the board, which changes it in the organization's settings. You only propose it, and never edit approval_mode in org_config.toml (company-employee, "What you may not decide alone").Write the proposal so it can be answered in one line: what you propose, why, what it costs, and the alternatives you rejected, ending with the explicit question. Then end the run. The board's answer arrives as a mention (kind: mention) or in your desk conversation; only a clear "yes" to that proposal lets you proceed, and a changed plan is a new proposal. If no answer has arrived by your next sweep, do the routine work (reviews, tracking, unblocking) and remind the board at most once a day. Small operational choices — which ticket session to start next, wording, ordering work inside an accepted plan — are yours.
The list above is what changes the organization. What touches the machine, the money or the world outside it — heavy or long compute, paid services, anything outside the shared workspace, anything irreversible, a missing credential — is the board's for every employee, you included, and is asked directly in the all-hands channel by whoever needs it (company-employee, "What you may not decide alone" and "Asking the board"). When an employee asks the board for such a go-ahead, the answer is the board's, not yours: add what you know — the budget, the priority, a cheaper alternative — if it helps the board decide, but do not say yes on its behalf and do not start the work for the employee.
The board is the humans of the Project. Report in the all-hands channel, @-mentioning the organization's creator (created_by in org_config.toml, as @user:<id>) — at most once per sweep, and only when there is something to decide or a milestone to report:
penguin org channel send -m "@user:alice Site launch: content done, build in review, domain blocked on you (2026-09-01-domain). Budget 41%. Decision needed: launch date." --ref-ticket 2026-09-01-launch-the-marketing-siteOne message: what finished, what is blocked and on whom, spend against budget, the decision you need. Completions are not reported one by one — the sweep report carries them. Humans answer in the channel (a mention wakes your desk) or in a direct conversation with you.
A kind: init trigger is the first message of a new organization's CEO; its body is the mission and the initialization tasks.
First, read what kind of company the mission asks for. If it says the organization mirrors a real company — a digital twin (数字分身) per real colleague, a company whose job is to relay between people rather than to produce anything of its own — follow company-mirror instead and skip the checklist below entirely: that company hires from the real org chart the board hands you, and it schedules nothing, files nothing and partitions nothing. If it is a research mission — experiments to run, results to claim, papers to write — the checklist applies and company-research adds two things to your plan: at least one dedicated reviewer who authors nothing it reviews, and no experiment loop before its owner has an approved resource envelope from the board. Everything else is an ordinary mission; work through the following, in order:
budget: line of the trigger block is what the board gave you (100 USD per month unless creation said otherwise), and since budgets accumulate along the reporting line it is the whole company's cap: every salary you propose has to fit inside it. If the plan does not fit, say so and ask for the number you need instead of proposing hires that will pause the company. End with the question, @-mention the creator, and end the run — nothing is hired, scheduled or filed before the answer. Write it in the organization's working language, the one the handbook's 「工作语言」 / “Working language” section names — as you write every message, ticket, document and brief from here on; commands, ids, file names and field names stay ASCII.penguin org hire --new-agent <org_id>_<role> …, default plugins).ceo/ and every hire lands in a sub-directory of its own, so this is only for the partitions a stream rather than an employee should own: penguin org employee set <agent_id> --workspace <sub-directory> — a relative sub-directory is created as it is assigned, so it need not exist first.penguin org calendar add at staggered hours and role cadences (the rota table above); never everyone at the same minute.in_progress only for what the board confirmed. Assigning is where the work starts moving — each owner's desk picks its tickets up in its next sweep; start a ticket session yourself only for a ticket you own.penguin org channel create ch_<stream> --name …) and invite its owner (penguin org channel invite ch_<stream> agent:<agent_id>), so a stream's thread does not drown the all-hands channel.handbook/README.md: it is what every employee reads first. handbook/ is the company's knowledge base: record every decision the board took as decisions/<yyyy-mm-dd>-<slug>.md (the question, the answer, what it changes) and list it in the index, so a later run — yours or anyone's — reads the decision instead of asking again.© Prism-Shadow, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/agent-company/skills/company-ceo of Prism-Shadow/penguin-harness.
Open the folder on GitHubat commit 2604c5d
Company Ceo 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Company Ceo this skillPrism-Shadow/penguin-harness | 2.5k | — | ~5.5k | Automated safety check: Pass | Apache-2.0 | |
| Internal Communications Writeranthropics/skills | 180k | 38 repos | ~378 | Automated safety check: Pass | Apache-2.0 | |
| Natural Japanese Business Writingcoji/natural-japanese | 1.9k | — | ~2.1k | Automated safety check: Pass | MIT | |
| My Weekly Reportmeain/dotfiles | 285 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Updatesjtenniswood/espframe | 208 | — | ~527 | Automated safety check: Pass | Custom licence | |
| Updateakseolabs-seo/AK-Threads-booster | 275 | — | ~1.1k | Automated safety check: Notes | MIT |
anthropics/skills
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill…
coji/natural-japanese
Writes and edits Japanese business documents so they read clearly and naturally, removes AI-sounding phrasing and can score how AI-like a text reads.
meain/dotfiles
Generate a concise weekly status update in team format. An agent skill from meain/dotfiles.
jtenniswood/espframe
Summarize user-facing changes made to this project over the last 7 days.
akseolabs-seo/AK-Threads-booster
Check AK-Threads-Booster for upstream GitHub updates, safely fast-forward the local skill repo, or install an opt-in weekly Codex automation that keeps the skill on the latest version.
sgharlow/claude-code-recipes
Turn scattered weekly updates (notes, emails, task exports, meeting notes) into a structured status report with highlights, progress, severity-rated blockers, and next-week priorities.
Prism-Shadow/penguin-harness
Make a reply easier to read and act on with rich blocks inside ordinary Markdown — a choice the user picks from, a form that collects several answers, a procedure as steps with warnings in place, a…
Prism-Shadow/penguin-harness
A skill your agent uses when developing PenguinHarness itself — changing packages/{core,server,web,cli,desktop,landing,docs,skills}, the built-in model catalog, the installers or the release…
Prism-Shadow/penguin-harness
Create and edit Bento presentations — self-contained .bento.html decks whose document is JSON.
Prism-Shadow/penguin-harness
A skill your agent uses when standing PenguinHarness up to try a change by hand — launching the Web App, the desktop shell, the landing page, the docs site or the component gallery to click through…
Prism-Shadow/penguin-harness
A skill your agent uses when changing the PenguinHarness Web App (packages/web) or the shared UI package — adding or restyling any UI, picking a status colour, adding an icon, laying out a row or a…
Prism-Shadow/penguin-harness
Drive the PenguinHarness agent browser — the desktop app's built-in browser or the user's own Chrome — from the shell with penguin browser: open pages, read them as simplified HTML or text, act with…
Categories
Run a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR and finance first, partition the shared workspace, schedule the calendar, open a channel per stream…. Company Ceo is an agent skill from Prism-Shadow/penguin-harness. Run a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR and finance first, partition the shared workspace, schedule the calendar, open a channel per stream, review tickets and report to the board in the all-hands channel.
Company Ceo fits situations like: tasks that involve Internal communications.
Run `npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a claude-code`. Or copy the skill folder (plugins/agent-company/skills/company-ceo in Prism-Shadow/penguin-harness) into .claude/skills/company-ceo in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a codex`. Or copy the skill folder (plugins/agent-company/skills/company-ceo in Prism-Shadow/penguin-harness) into .agents/skills/company-ceo in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Prism-Shadow/penguin-harness --skill company-ceo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/company-ceo, .gemini/skills/company-ceo, .github/skills/company-ceo and .opencode/skills/company-ceo in your project.
Going by SKILL.md and its folder, Company Ceo needs the command-line tools its instructions call (lighthouse).
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.
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.
Company Ceo is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Company Ceo: Internal Communications Writer (anthropics/skills, 180k stars), Natural Japanese Business Writing (coji/natural-japanese, 1.9k stars), My Weekly Report (meain/dotfiles, 285 stars) and Updates (jtenniswood/espframe, 208 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Prism-Shadow (a GitHub organization) maintains it in Prism-Shadow/penguin-harness, which has 2,469 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 10, 2026.
Source: Prism-Shadow/penguin-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.