Skip to content

Claude/sec commands graph refactor#200

Merged
sroussey merged 6 commits into
harnessfrom
claude/sec-commands-graph-refactor-jocdah
Jul 17, 2026
Merged

Claude/sec commands graph refactor#200
sroussey merged 6 commits into
harnessfrom
claude/sec-commands-graph-refactor-jocdah

Conversation

@sroussey

Copy link
Copy Markdown
Contributor

No description provided.

claude and others added 6 commits July 16, 2026 17:17
…renderer

Adds runWorkflowCli — a shared helper that pipes tasks into a Workflow
terminated by an OutputTask sink and runs it through @workglow/cli
(renderWorkflowRun progress UI on a TTY, plain run when piped) — plus
task classes for every query/db subcommand. Commands now only parse
arguments, run the graph, and render the collected output.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WcsARaK3c9Ta89y2GydQan
Every subcommand now runs its work as a Workflow task graph via the
shared runWorkflowCli helper (tasks + OutputTask sink, rendered with
@workglow/cli's renderWorkflowRun progress UI on a TTY, plain run when
piped). Business logic that previously lived inline in Commander
actions moved into ~35 new task classes under src/task/ (query, db,
versioning ceremonies, resolve, canonical/family aliases, spac report
and backfills, editorial set/import, fixtures, init apply, per-CIK
facts), leaving commands to parse arguments, run the graph, and render
the collected output. sync and bootstrap now build a single pipeline
per invocation instead of sequential runs.

CLI output strings and exit codes are preserved verbatim; helpers that
tests import (assembleSpacReport, compareIssuerDeal, family lookups,
resolveCanonical*Ref, countEligibleDeadLetters, buildEnvConfig) stay
exported. UpdateAllSubmissionsTask/UpdateAllCompanyFactsTask gained
input schemas since graph-driven runs validate inputs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WcsARaK3c9Ta89y2GydQan
Co-authored-by: Steven Roussey <sroussey@gmail.com>
Co-authored-by: Steven Roussey <sroussey@gmail.com>
…pe tier wiring

Findings from code review of the graph-ification refactor:

- Expected user-errors (unknown canonical/family names, self-alias,
  missing spac row) now come back as output ports instead of throws.
  On a TTY the workflow renderer intercepts thrown errors with
  process.exit(1), bypassing command error handling and CLI teardown;
  as data, the commands render the same 'error: ...' text and exit
  code on both TTY and piped runs. This also removes editorial set's
  fragile string-prefix error classification.
- editorial import records a mid-file import failure as a fatalError
  result entry (stopping the sweep) so summaries for already-committed
  files are still reported instead of being lost with the throw.
- Removed the duplicate SetFamilyDescriptionTask; editorial reuses
  FamilyDescriptionSetTask, whose schema validates the kind enum.
- New canonicalTier deps seam collapses the person/company copy-paste
  in the three canonical alias tasks (mirrors familyTier); the
  canonical reference resolvers move there (command re-exports them).
- issuerCiksByFamilyName lives in familyTier now; IssuersByFamilyTask
  and both command modules delegate to it (removes the task-to-command
  layering inversion and module cycles).
- countEligibleDeadLetters lives with ListDeadLettersTask (extractor
  group re-exports it); VersionPromoteTask no longer imports from the
  CLI layer.
- ceremonyRepos() factory replaces the registry/event-repo wiring
  duplicated across the five version-ceremony tasks.
- ResolveObservationsTask reports a skipped count and shares one
  resolve loop across kinds.
- FamilyAliasListTask only requires resolverVersion for orphan
  listing; the sponsor alias-list no longer passes an inert version.
- runWorkflowCli documents the piped-port-name discipline and the
  expected-errors-as-data convention.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WcsARaK3c9Ta89y2GydQan
Co-authored-by: Steven Roussey <sroussey@gmail.com>
@sroussey sroussey self-assigned this Jul 17, 2026
@sroussey
sroussey merged commit 4b1848f into harness Jul 17, 2026
1 check passed
@sroussey
sroussey deleted the claude/sec-commands-graph-refactor-jocdah branch July 17, 2026 00:29
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.

3 participants