Skip to content

spec: persona.md — persona commands as ordinary intents; total query replies#115

Draft
JarbasAl wants to merge 1 commit into
devfrom
spec/persona
Draft

spec: persona.md — persona commands as ordinary intents; total query replies#115
JarbasAl wants to merge 1 commit into
devfrom
spec/persona

Conversation

@JarbasAl

@JarbasAl JarbasAl commented Jul 4, 2026

Copy link
Copy Markdown
Member

Refines OVOS-PERSONA-1 for internal consistency with the intent and session specs.

Changes

  • §7.1 — embedded commands are ordinary intents. Summon, release, one-off query ("ask Alice…"), list, and check SHOULD be expressed as intent/entity resources in the plugin's own /locale tree and matched with the standard intent machinery (OVOS-INTENT-2). No bespoke persona-command matching layer: the plugin is distinguished by its route-2 active-persona catch-all, not by how it recognises its own commands. This keeps PERSONA-1 consistent with the intent specs' single design for command recognition.
  • §8.5 — the out-of-band query is total. On an unsupported persona_id the plugin MUST still reply on ovos.persona.answer (echo persona_id/utterance, set error, omit response) instead of returning an untyped None — a bus request-response contract cannot carry a language-level None. response/error are mutually exclusive fields in the payload table.
  • §6 — dismissal per session class. Default session: omission never dismisses (SESSION-2 merge semantics), so dismissal requires an explicit clear — empty-string persona_id (equivalent to absent, §3) via ovos.session.sync, a release intent, or a committed Match.updated_session without the field. Named session: the client copy is authoritative; the client dismisses by removing the field.
  • §3persona_id constraint relaxed to a RECOMMENDED ASCII letters/digits/_/- convention (naming convention = tuning, not interop).
  • SESSION-1 registry cross-references corrected to §2.2 (five places).
  • CHANGELOG entry appended under the class-2 section; Version stays 2 (refinements within the class).

🤖 Generated with Claude Code

Embedded persona commands (summon/release/ask/list/check) are ordinary
intents expressed as locale resources and matched by the standard
intent machinery — the plugin is distinguished by its catch-all, not
bespoke command matching. The out-of-band ovos.persona.query interface
always replies on ovos.persona.answer, with mutually exclusive
response/error fields instead of an untyped None. Dismissal mechanics
are stated per session class (default: explicit clear; named: client
removes the field). persona_id character rules relax to a RECOMMENDED
convention; SESSION-1 registry pointers corrected to §2.2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: aa0ae220-a313-4488-b9a8-b18beca77f2e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch spec/persona

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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