Add scaffold plugin type support#29
Merged
eric-tramel merged 1 commit intocodex/epic-15-plugin-tapfrom May 7, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Extends
ddp newwith a--typeoption forcolumn-generator,seed-reader, andprocessorscaffolds. The default remainscolumn-generator, and CLI help calls out that default.The new seed-reader scaffold wires a
FileSystemSeedSourceconfig,FileSystemSeedReaderimplementation placeholder,seed_typediscriminator, andPluginType.SEED_READER. The new processor scaffold wiresProcessorConfig,Processor,processor_type, andPluginType.PROCESSOR, with an unchangedprocess_after_batchplaceholder.The scaffolded README/docs now use plugin-type and entry-point wording for non-column-generator scaffolds, and the generated plugin docs index now labels package entry points as entry points instead of assuming all are column types.
Why
Plugin authors need the repo CLI to produce valid starter packages for all Data Designer plugin categories, not only column generators. Keeping this in the scaffold makes package shape, tap metadata, docs, tests, and entry-point wiring deterministic across plugin types.
Usage
The default command creates the existing column-generator pattern. Seed readers get a TODO-only manifest placeholder that imports and validates without claiming production behavior. Processors get a pass-through
process_after_batchplaceholder and generated test text documenting the current Data Designer 0.5.7 processor validation gap.How
Adds a small
ScaffoldSpecmodel indevtools/ddp/src/ddp/scaffold.pyto select type-specific config, implementation, plugin registration, test, README, docs, and next-step text. The unified CLI passes--typethrough to the scaffold module.Adds golden scaffold coverage for file trees and important contents across all three plugin types, plus import/validation smoke coverage for generated packages. CLI tests cover default behavior, valid type parsing, invalid type errors, help text, and dispatch.
Validation
make syncuv run pytest devtools/ddp/tests/test_cli.py devtools/ddp/tests/test_scaffold.py -quv run pytest devtools/ddp/tests/test_plugin_docs.py -quv run ruff check devtools/ddp/src/ddp/scaffold.py devtools/ddp/src/ddp/cli.py devtools/ddp/src/ddp/plugin_docs.py devtools/ddp/tests/test_scaffold.py devtools/ddp/tests/test_cli.py devtools/ddp/tests/test_plugin_docs.pymake lintmake checkmake test-devtoolsmake validate