Skip to content

Introduce shared-patterns/ with voice-and-tone#65

Open
MLatzke wants to merge 2 commits into
mainfrom
matt/05.19.26/shared-patterns
Open

Introduce shared-patterns/ with voice-and-tone#65
MLatzke wants to merge 2 commits into
mainfrom
matt/05.19.26/shared-patterns

Conversation

@MLatzke
Copy link
Copy Markdown
Member

@MLatzke MLatzke commented May 21, 2026

This PR creates a new top-level shared-patterns directory that houses patterns that are shared across skills.

Currently, it holds:

  • voice-and-tone.md — Asta's shared communication conventions: neutral/professional register, no emotional rapport, no cheekiness or judgmental tone, plain language with technical-term definitions, intellectual humility with categorical (not numeric) confidence labels, process rules. Adapted from @psesito https://docs.google.com/document/d/1OzhY7gVmtTwlnuR63vQF7fPurCWI7PCZ1IGM6gD2Pfc/edit?tab=t.0
  • SKILL-BOILERPLATE.md — starting point for new Asta skills with frontmatter scaffolding, voice-and-tone reference, and optional sections. Developer-only; excluded from built plugins.

It also updates the build script to copy shared-patterns/ into each plugin, so the relative path resolves consistently across the source and the built artifacts. Each plugin remains self-contained.

First consumer: skills/generate-theories/SKILL.md references voice-and-tone at the top and in the References section.

New top-level shared-patterns/ directory holding agent-voice prompt
fragments that multiple skills can reference instead of each defining
their own conventions in isolation.

- `voice-and-tone.md` — Asta's shared communication conventions:
  neutral/professional register, no emotional rapport, no cheekiness
  or judgmental tone, plain language with technical-term definitions,
  intellectual humility with categorical (not numeric) confidence
  labels, process rules. Adapted from Ruben Lozano Aguilera's "Asta
  Personality Principles" doc.
- `SKILL-BOILERPLATE.md` — starting point for new Asta skills with
  frontmatter scaffolding, voice-and-tone reference, and optional
  sections. Developer-only; excluded from built plugins.

Build script copies shared-patterns/ into each plugin so the relative
path `../../shared-patterns/<file>` resolves the same way in both
source and built artifacts. Each plugin remains self-contained.

First consumer: `skills/generate-theories/SKILL.md` references
voice-and-tone at the top and in the References section.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@MLatzke MLatzke requested a review from charliemcgrady May 21, 2026 22:36
@jbragg
Copy link
Copy Markdown
Collaborator

jbragg commented May 21, 2026

I think we need a mechanism outside the skills to load an agent with identity tone etc.
Since skills can be plugged into any agent, they don't have the right to override the user's agent identity etc.
cc: @rodneykinney

@rodneykinney
Copy link
Copy Markdown
Member

Agree. These instructions are more appropriate at the CLAUDE.md level. Agent skills are typically invoked with a clean context. In that case, the top-level agent is responsible for reporting the result of an invoked skill back to the user, so adding tone to skills is not enough.

@MLatzke
Copy link
Copy Markdown
Member Author

MLatzke commented May 21, 2026

Hmm, I think we're already affecting the voice and tone, though. We're just not doing it intentionally. Multiple agents have the ability to write things. @charliemcgrady showed me an example of a theory output, and the agent sounded sarcastic and patronizing.

We need to figure out a way to guide that output. If the user's agent decides to rewrite something, that's fine, just as long as we're not sending biased text in the first place.

@jbragg
Copy link
Copy Markdown
Collaborator

jbragg commented May 21, 2026

@MLatzke it sounds like you might be describing a problem with the theorizer agent that should be solved there?

@charliemcgrady
Copy link
Copy Markdown
Contributor

I agree that something like personality is best modeled via Claude.md, et. al. instead of as a skill in the core plugins. Asta Bot should behave differently in the Slack vs. Web surface.

My recommendation would be to publish this in https://github.com/allenai/design.md. Then our handler + users can optionally adopt this specific personality.

So new skills can reference the canonical asta CLI install block from
SKILL-BOILERPLATE.md instead of pasting the snippet. manage-version.py
now scans and rewrites the shared file alongside the per-skill copies so
its pinned PLUGIN_VERSION stays consistent on `make set-version` bumps.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

4 participants