Skip to content

Add Slack internal processing workflow - #27

Open
pratikbuilds wants to merge 48 commits into
corbitsdev:mainfrom
pratikbuilds:slack-internal-processing
Open

Add Slack internal processing workflow#27
pratikbuilds wants to merge 48 commits into
corbitsdev:mainfrom
pratikbuilds:slack-internal-processing

Conversation

@pratikbuilds

@pratikbuilds pratikbuilds commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a Slack call-digest starter that turns an uploaded transcript into a structured summarize → extract digest
  • keep intake, status, and digest cards in the originating mention thread
  • reuse the shared Corbits Tag workspace inherited from the stacked Slack starters

Stack

This PR is stacked directly on #25 and targets its head branch, scout-fact-check.

The diff against that branch only adds starter/slack-internal-processing; it does not add another Corbits Tag checkout or repeat shared vendor infrastructure.

Commits

  1. Scaffold the Slack internal processing package
  2. Add call digest types and strict parser
  3. Define summarize and extract digest workflow
  4. Render Slack intake and digest cards
  5. Drive transcript intake through Slack sessions
  6. Mount the Corbits Tag Slack entrypoint
  7. Cover digest parsing and session regressions
  8. Document Slack internal processing setup

Verification

  • bun test — 14 passed, 0 failed
  • bun run typecheck
  • bun run start --help
  • bun build src/cli.ts --target=bun --outdir /tmp/slack-internal-processing-build

Live Slack verification was not repeated for this change.

…r-slack-workflow' into agent/add-slack-post-to-x"

This reverts commit bd05968, reversing
changes made to f52ee32.
pratikbuilds and others added 8 commits August 7, 2026 13:42
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@pratikbuilds
pratikbuilds force-pushed the slack-internal-processing branch from f64ad06 to 544565f Compare August 7, 2026 07:57
@TheGreatAxios
TheGreatAxios changed the base branch from scout-fact-check to main August 18, 2026 04:29

@TheGreatAxios TheGreatAxios left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

code-review

Adds a Slack call-digest starter: Tag intake, .txt transcript upload, summarize→extract workflow, and digest cards.

Request changes

  1. starter/slack-internal-processing/src/session.ts:38 + workflow.ts step invoker — extract always fails at runtime

    runLocal is called with triggerPayload: JSON.stringify(input), and createInternalProcessingStepInvoker returns { output: reply } where reply is a string. The extract step merges:

    merge: [
      { from: "steps.summarize.output" },
      { project: { from: "trigger.payload" }, fields: ["callTitle", "transcript"] },
    ]

    @intx/workflow requires every merge operand to be an object (SelectorError: merge selector requires each operand to be an object). Reproduced locally with a stub invoker: summarize succeeds, extract fails, run ends failed. Sibling slack-community-pulse avoids this by returning wrapped objects ({ mentions: reply }) and passing an object trigger.

    Suggested shape:

    • triggerPayload: input (object, matching community-pulse / team-grill / diligence)
    • Parse the summarize agent JSON and return an object { summary, discussionPoints } (and similarly for extract if anything merges it later)

    workflow.test.ts only asserts the selector AST shape, so this path is untested end-to-end.

Checks

  • Commit subjects/bodies: all ≤72; subjects match package scaffolding story (git log origin/main..HEAD --format='%s' / '%b')
  • bun test in the package: 14 pass
  • Runtime repro: runLocal with stringified trigger + string summarize output → extract StepFailed as above; object trigger + object summarize output → completed

@TheGreatAxios TheGreatAxios left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

code-review (re-review)

No new commits since the prior review. The blocking runtime issue is still present.

Request changes

  1. starter/slack-internal-processing/src/session.ts:38 + step invoker — extract merge fails at runtime

    Still uses triggerPayload: JSON.stringify(input) and returns string { output: reply }. The extract step merge of summarize output with a projected trigger.payload requires objects (SelectorError: merge selector requires each operand to be an object). Pass an object trigger and return parsed object step outputs (same shape as slack-community-pulse).

  2. package.json still declares "license": "LGPL-2.1-only"

    Repo direction is a single root MIT LICENSE (#30). Please drop the per-package license field so this starter matches the other examples once #30 lands.

Checks

  • git log origin/main..origin/slack-internal-processing: 8 commits, own package only
  • Blocking merge/stringify finding re-confirmed on current tip (fc744bb)

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.

2 participants