Skip to content

refactor(skills): slim talk-like-scarletkc to rules and loosen drafting - #46

Merged
scarletkc merged 2 commits into
mainfrom
scarletkc/scarletkc-optimization-diagnosis-bfe018
Oct 21, 2026
Merged

scarletkc merged 2 commits into
mainfrom
scarletkc/scarletkc-optimization-diagnosis-bfe018

Conversation

@scarletkc

@scarletkc scarletkc commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

Motivation

Tweets written with talk-like-scarletkc plus x-content had become flat and formulaic. The causes:

  • Duplicated and conflicting rules. Many rules were stated three to six times across files: the banned-opener and both-sides lists, the defensive tail clause, analogies, and edit scope. Several rules also contradicted each other. For example, the core voice allowed contrast while anti-patterns discouraged it. Writing one tweet loaded about 60 KB across 7 files, mostly prohibitions.
  • Faithful-only drafting. Both skills told the model to transcribe the supplied material faithfully and add nothing. Drafts therefore restated the material instead of adding an angle or stance.
  • Examples copied as templates. Sample tweets were reused as patterns, so posts converged on the same openings, phrases, and structure.
  • No engagement guidance in x-content. It only covered where readers get confused, not why they would stop scrolling.

Changes

  • talk-like-scarletkc
    • Merge voice-profile.md and anti-patterns.md into SKILL.md so each rule appears once.
    • Split behavior by task. Voice rewrites (polish, rewrite, translation, local edits) stay faithful. Drafts may add angle, stance, reactions, humor, analogies, and rhetorical questions.
    • Both modes still forbid inventing verifiable facts. When the assistant chooses a stance, it says so outside the draft instead of stopping to ask.
    • Write tweets from rules only. Delete examples.md and fold its chat habits into surface-profiles.md as rules.
    • Keep dialogue-samples.md, which is read only when ghostwriting one-on-one chat.
    • Add tweet rules distilled from the author's higher-engagement posts. The posts themselves are not stored. The rules: lead with a verdict or reaction, state emotion fully, voice speculation as the author's own, and allow an ending that adds a new judgment.
    • Add a no-repetition rule: vary openings, structure, endings, and catchphrases across posts.
  • x-content
    • Add "why readers stop" and first-line guidance.
    • Allow drafts to add an angle and stance.
    • Add quote-post structure and the no-template rule.
    • Remove the voice rules it duplicated from talk-like-scarletkc.
  • lint_style.py: drop the negative-framing and vague-experience-word rules. They contradicted the guidance to keep reasons and concrete experience words.
  • telegram_corpus.py: the candidate checklist now points to distilling rules into surface-profiles.md instead of examples.md.
  • Evals
    • Update talk-like-scarletkc 6 and 14, and x-content 10, for the new drafting behavior. Cases that previously required asking for a missing stance now expect a draft that says the stance was chosen by the assistant.
    • Add talk-like-scarletkc 43: a real contrast and punchline survive a voice edit.
    • Add x-content 27: author attitude leads instead of a changelog.
    • Add x-content 28: a draft adds an angle to flat material without inventing facts.

Compatibility: this removes the reference files references/voice-profile.md, references/anti-patterns.md, and references/examples.md. Local copies or external links that point to them will break. There are no runtime code, public API, or eval JSON schema changes.

Validation

  • python -m unittest discover -s tests (Python 3.13.14): 99 tests passed.
  • python scripts/update_readme_skills.py --check: passed.
  • python scripts/package_skill.py talk-like-scarletkc and x-content: both packaged.
  • gh skill publish --dry-run: passed with advisory repository-security warnings.
  • git diff --check origin/main...HEAD: passed.
  • Informal behavioral comparison: subagents wrote the same three fictional posts plus one voice-only edit once per skill version.
    • Original: drafts restated the material.
    • Pruning only: nearly identical output.
    • Allowing additions plus example tweets: stronger hooks, but every post followed the same verdict, facts, punchline shape.
    • Final rules-only version: varied structure, and the voice-only edit stayed faithful. The tweet path now reads 3 files, about 19 KB.

This is a small, single-run sample. It shows a direction but does not establish better engagement. The model-driven eval suite was not run.


Devin Review

- Merge voice-profile.md and anti-patterns.md into SKILL.md so each rule
  appears once; drop examples.md and fold its chat habits into
  surface-profiles.md.
- Write tweets from rules only; samples remain for one-on-one chat.
- Keep voice rewrites faithful, but let drafts add angle, stance, and
  reactions without inventing facts, flagging assistant-chosen stances.
- Add reader-engagement and no-repetition guidance to x-content and
  remove the voice rules it duplicated.
- Drop stale lint rules and update evals for the new drafting behavior.
devin-ai-integration[bot]

This comment was marked as resolved.

- Choose a stance only for public posts; replies to a specific person
  no longer carry an invented recommendation or commitment.
- Keep the identifying detail in a tweet's first line with the reaction.
- Drop the stale examples reference from persona.md and update eval 14.
@scarletkc
scarletkc merged commit 3be29ae into main Oct 21, 2026
1 check passed
@scarletkc
scarletkc deleted the scarletkc/scarletkc-optimization-diagnosis-bfe018 branch October 21, 2026 20:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant