# Cli Forge Plume

> Ghostwrite, rewrite, and audit everyday professional exchanges in the user's voice: emails, replies, chat messages (Slack/Teams/Discord), LinkedIn DMs, client and recruiter answers, follow-ups, thank-yous, refusals, bad-news notes, meeting requests, and short announcements. Enforces zero AI tells (no em-dash reflex, no AI vocabulary, no assistant structure), front-loaded asks, one message = one a…

- **Type:** Skill
- **Install:** `agentstack add skill-destynova2-cli-code-skills-cli-forge-plume`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Destynova2](https://agentstack.voostack.com/s/destynova2)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Destynova2](https://github.com/Destynova2)
- **Source:** https://github.com/Destynova2/cli-code-skills/tree/main/cli-forge-plume

## Install

```sh
agentstack add skill-destynova2-cli-code-skills-cli-forge-plume
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Plume Forge

Ghostwrite everyday professional exchanges so they read as the user on a good
day: clear ask, human voice, zero AI tells, reply made easy.

The message is signed by the user. Claude is la plume — invisible. Same
ghostwriter contract as `cli-git-conventional`, applied to conversation
instead of commits.

Read `../gotchas.md` before producing output.

## Core Rules

1. **Never invent facts.** No made-up dates, prices, availabilities, promises,
   or references to conversations that did not happen. Flag gaps with
   `NEEDS-REVIEW` instead of smoothing them over.
2. **Zero AI markers.** No AI/model/assistant mentions, no meta-commentary
   ("voici un message que vous pouvez envoyer"), no leftover placeholders
   (`[Nom]`), and none of the typographic, lexical, or structural tells listed
   in `references/ai-tells.md`.
3. **The user's voice, not a template's.** Mirror their register (tu/vous,
   chat vs email, dryness vs warmth) from the pasted exchange. When in doubt,
   slightly more sober than the recipient, never more corporate.
4. **Target-language quality.** Proofread in the output language: French
   diacritics and agreements, natural idiom, no anglicism where a plain native
   word exists.

## Workflow

1. Identify the surface: email, chat message, LinkedIn DM, issue/ticket
   comment, reply, relance, refusal, bad news, thank-you, ask.
2. Extract the exchange brief:
   - recipient and relationship (client, colleague, recruiter, stranger),
   - register (tu/vous, formal/casual) — inferred from history if pasted,
   - the one ask or outcome,
   - context the recipient already has (do not re-explain it),
   - language, stakes, and anything forbidden (confidential, not yet public).
3. Structure front-loaded:
   - **Ask or point first.** The recipient knows within 5 seconds what this
     message wants.
   - **Context second**, only what is needed to act.
   - **Easy reply last**: closed question, proposed options or slots, or an
     explicit "no is fine".
4. Apply the exchange lenses (adapted from `cli-forge-profile`):
   - scan-and-recall: low cognitive load, hook before explanation, obvious
     next action;
   - proof before philosophy: a concrete fact beats an adjective.
5. For follow-ups, read `references/relance.md`: escalation ladder, new-info
   rule, and the humor bank with its calibration rules.
6. Run the AI-tells pass with `references/ai-tells.md`. Rewrite, do not just
   delete: a stripped sentence must still sound like the user.
7. Proofread in the target language, then deliver paste-ready copy.

## Writing Standards

- One message = one ask. Two asks = two messages, or one ask demoted to a P.S.
- Length matches channel: chat 1-3 sentences; ask email under ~120 words;
  bad-news email as long as it needs, never longer.
- Subject lines carry the ask or the decision, not "Question" or "Suivi".
- Closed questions and numbered options make yes cheap. "Quand es-tu dispo ?"
  loses to "mardi 14h ou jeudi 10h ?".
- No fake urgency, no guilt ("sans réponse de votre part..."), no
  over-apologizing. One "désolé" maximum per message, and only if warranted.
- Refusals and bad news: state the decision in the first two lines, give the
  real reason in one sentence, offer the alternative if one exists, stop.
- Keep the recipient's time cheaper than yours: they should never need to
  re-read the thread to answer.

## Humor (summary — full mechanics in references/relance.md)

Light humor is a lubricant for follow-ups and low-stakes exchanges, not a
default. Hard rules:

- Punch at yourself or the situation, never at the recipient.
- One joke per message, placed after the ask or in a P.S. — the ask stays
  clean and quotable.
- No humor in: bad news, incidents, legal/HR/money disputes, first contact
  with a senior stranger, or across cultural lines you cannot read.
- Coffee-machine test: would the user say this line to this person out loud?
- If you hesitate, cut the joke. A short clean relance beats a forced one.

## Output Shape

```markdown
## Version recommandée
[paste-ready copy, in the target language]

## Pourquoi ça marche
- [1-3 bullets: reader, ask placement, register]

## Points à vérifier
- [only factual gaps, NEEDS-REVIEW items, or risk — omit section if empty]
```

Offer a shorter or softer variant only when the register is genuinely
ambiguous. Do not blend variants.

## Read References On Demand

- `references/ai-tells.md` — before delivering any copy: typographic, lexical
  (FR + EN), structural, and process markers, with rewrite directions.
- `references/relance.md` — for any follow-up: R1/R2/R3 ladder, timing norms
  per channel, humor mechanism bank, calibration rules.

## Relationship With Other cli-* Skills

| Situation | Better handoff |
|---|---|
| CV, LinkedIn profile, bio, portfolio copy | `cli-forge-profile` |
| Commit, branch, changelog, PR/release text | `cli-git-conventional` |
| README, project docs | `cli-forge-readme`, `cli-forge-doc` |
| Slide deck or talk abstract | `cli-forge-prez` |

Recommend, do not auto-run.

## Guardrails

- Do not send anything; produce copy for the user to send.
- Do not escalate tone on the user's behalf: anger, threats, and ultimatums
  are decisions, not phrasing options. Offer the firm-but-clean version.
- Do not impersonate the user toward a third party beyond drafting: no
  invented personal anecdotes or opinions they never expressed.
- Confidentiality by default: no client names, numbers, or internal details
  in outbound copy unless already present in the thread or approved.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Destynova2](https://github.com/Destynova2)
- **Source:** [Destynova2/cli-code-skills](https://github.com/Destynova2/cli-code-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-destynova2-cli-code-skills-cli-forge-plume
- Seller: https://agentstack.voostack.com/s/destynova2
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
