Skip to content

feat(presenter): add presenter workflow and deploy_presenter hand-off - #59

Merged
TheGreatAxios merged 2 commits into
mainfrom
cl-11933-add-a-presenter-that-builds-a-package-for-one-audience
Nov 2, 2026
Merged

TheGreatAxios merged 2 commits into
mainfrom
cl-11933-add-a-presenter-that-builds-a-package-for-one-audience

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Closes CL-11933 (Slice 3 of 5 for CL-11929; stacked on cl-11932-file-approval-packages-as-a-versioned-document-kind).

Summary

  • Add the presenter specialist role and @corbits-builder/presenter workflow (workflows/presenter), bound to the Medium model tier (apps/hub/src/config/models.ts) and scoped to sb-artifact:approval_package write grants.
  • Add audience persona presets (ceo, cto, investor, client, end_user) in apps/hub/src/config/personas.ts and the presenting skill (workflows/presenter/skills/presenting/SKILL.md).
  • Add deploy_presenter to the Coordinator's tools (apps/hub/src/projects/deploy-tools.ts), verifying that source documents are approved, pinning their artifactId@version@sha256 refs, and forwarding the project's filed design tokens (DESIGN.md and styles.css) so the deck reuses the project's visual identity.
  • Add createPackageTools (apps/hub/src/artifacts/package-tools.ts) with write_deck, check_deck, and file_package (which refuses with deck_check_failed unless check_deck passed on the current .builder/deck.json).

@linear-code

linear-code Bot commented Nov 2, 2026

Copy link
Copy Markdown

CL-11933

@corbits-triage corbits-triage Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Triage requests changes:

  • Conventions: added code matches a code pattern

@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from 6f73dfe to 7f69048 Compare November 2, 2026 02:41
@corbits-triage
corbits-triage Bot dismissed their stale review November 2, 2026 02:43

Nothing triage asked to change still fails, so this request no longer stands.

@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from 7f69048 to 6a41999 Compare November 2, 2026 03:40
@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

The presenter role, Medium-tier workflow, audience presets, and deploy_presenter are in place. deploy_presenter deploys only the presenter workflow and refuses unapproved selected documents. Three gates do not hold.

  1. Blocking. file_package can file a different audience and different sources than the hand-off. resolveAssignment in apps/hub/src/artifacts/package-tools.ts spreads the caller's audience and sources over the assignment file. deploy_presenter never writes a sealed assignment. The hub only checks that each pin's kind, version, and sha256 exist. It does not require the approved selection from the hand-off. A presenter deployed for ceo with the approved brief and build plan can file an investor package that pins only the design.

  2. deploy_presenter pins the current design even when that version is not the approved one. Selected documents are checked. Design is not. deploy_coder already refuses an unapproved design. Saving tweaks files a new design version and does not approve it, and this path will attach that version.

  3. The deck-check gate does not bind the bytes that get filed. { "passed": true } with no hash is accepted. check_deck hashes deck.json only. file_package still embeds whatever non-empty deck.pptx and deck.pdf are on disk, so the package can contain a deck the check did not pass.

@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from 6a41999 to b8d9eb2 Compare November 2, 2026 05:07
@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from b8d9eb2 to abeec4d Compare November 2, 2026 05:23
@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from abeec4d to 5d0da03 Compare November 2, 2026 05:54
@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from 5d0da03 to b8aac29 Compare November 2, 2026 06:04
@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from b8aac29 to df8f2b4 Compare November 2, 2026 06:33
corbits-triage[bot]
corbits-triage Bot previously approved these changes Nov 2, 2026
@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from df8f2b4 to 386ebe2 Compare November 2, 2026 08:57
@TheGreatAxios
TheGreatAxios added this pull request to stack #90 November 2, 2026 09:06
Base automatically changed from cl-11932-file-approval-packages-as-a-versioned-document-kind to main November 2, 2026 09:18
# Conflicts:
#	apps/hub/src/inference/model-limits.ts
#	apps/hub/src/workflows/packaged.test.ts
@TheGreatAxios
TheGreatAxios force-pushed the cl-11933-add-a-presenter-that-builds-a-package-for-one-audience branch from 386ebe2 to bacc231 Compare November 2, 2026 09:18
@TheGreatAxios
TheGreatAxios enabled stacked auto-merge November 2, 2026 09:18

@corbits-triage corbits-triage Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Triage requests changes:

  • CI green: required checks are failing
    • typecheck

The composer role labels must cover every workflow role, including presenter.
@corbits-triage

corbits-triage Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Triage: Unsure

Asking a maintainer about:

  • changes sensitive paths: auth: apps/hub/src/auth/agent-token-bridge.ts, locks: bun.lock

@corbits-triage
corbits-triage Bot dismissed their stale review November 2, 2026 09:39

Nothing triage asked to change still fails, so this request no longer stands.

stacked auto-merge was automatically disabled November 2, 2026 09:48

Auto-merge was disabled for another pull request in the stack

@TheGreatAxios
TheGreatAxios merged commit 6f25650 into main Nov 2, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant