Skip to content

Architectural refactor: flatten module layout, integrate Actioneer pipeline, and overhaul CI workflows#478

Closed
gesslar wants to merge 12 commits intomainfrom
12-31-workflow_updates_and_implementing_actioneer_integration
Closed

Architectural refactor: flatten module layout, integrate Actioneer pipeline, and overhaul CI workflows#478
gesslar wants to merge 12 commits intomainfrom
12-31-workflow_updates_and_implementing_actioneer_integration

Conversation

@gesslar
Copy link
Copy Markdown
Owner

@gesslar gesslar commented Feb 19, 2026

Summary

This PR represents a significant architectural overhaul of BeDoc, touching the core module layout, the file-processing pipeline, the CI/CD setup, and the example plugins.

Core architecture — module flattening

The nested src/core/ layer has been eliminated. All core classes now live directly under src/:

Old path New path
src/core/Core.js src/BeDoc.js
src/core/Conveyor.js src/Conveyor.js
src/core/Discovery.js src/Discovery.js
src/core/Configuration.js src/Configuration.js
src/core/Logger.js src/Logger.js

Removed classes that were superseded: ActionManager, ContractManager, HookManager, ParseManager, PrintManager, and their associated utilities (ActionUtil, ContractUtil).

New top-level modules added: Action.js, Environment.js, Schema.js.

Actioneer integration

Conveyor.js now drives file processing through the @gesslar/actioneer pipeline (ActionBuilder / ActionRunner). The parse→validate→print→write sequence is declared as a fluent action chain, replacing the previous imperative orchestration.

Negotiator / contract system

BeDoc.js consumes @gesslar/negotiator to enforce contracts between parsers and printers. New TypeScript type definitions for ParseContract and PrintContract are generated via tsconfig.types.json.

Package manager — npm → pnpm

package-lock.json removed; pnpm-lock.yaml and pnpm-workspace.yaml added. Example plugins also migrated to pnpm lock files.

CI/CD workflows

  • Removed: autopr-dev.yml, codeql.yml, rebase-base-into-pr.yml
  • Added: Quality.yaml and Release.yaml, both delegating to the shared gesslar/Maint reusable workflows

ESLint config

eslint.config.js reduced from ~255 lines to ~16 lines by moving rules into the shared Maint configuration.

License

LICENSE renamed to UNLICENSE.txt with updated content.

Example plugins

  • Removed bedoc-lpc-markdown-combined (superseded by separate parser + printer).
  • Updated bedoc-lpc-parser, bedoc-markdown-printer, and bedoc-wikitext-printer to the new contract-based API; each now ships a .yaml action-definition file.
  • Expanded Lua example source library.

Test plan

  • pnpm install succeeds across the workspace
  • pnpm run build (or equivalent) generates clean type declarations under dist/types/
  • CLI entry point resolves and runs end-to-end against an LPC or Lua source file
  • Example plugins (bedoc-lpc-parser, bedoc-markdown-printer, bedoc-wikitext-printer) parse and print correctly with the new Actioneer pipeline
  • Quality GitHub Actions workflow passes on the PR

🤖 Generated with Claude Code

Copy link
Copy Markdown
Owner Author

gesslar commented Feb 19, 2026

@gesslar gesslar force-pushed the 12-31-workflow_updates_and_implementing_actioneer_integration branch 3 times, most recently from 30ef925 to b19bcbe Compare February 19, 2026 01:28
@gesslar gesslar changed the title workflow updates and implementing actioneer integration Architectural refactor: flatten module layout, integrate Actioneer pipeline, and overhaul CI workflows Feb 19, 2026
@gesslar gesslar force-pushed the 12-31-workflow_updates_and_implementing_actioneer_integration branch from 36b1968 to 8f86b66 Compare February 20, 2026 07:03
@gesslar gesslar closed this Feb 22, 2026
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