feat(create): add --describe with generated-project layout hints - #176
Conversation
21eeebd to
157127b
Compare
webup
left a comment
There was a problem hiding this comment.
Thanks for adding the generated-project layout hints. There is one blocking correctness issue:
_template_layout_hints()enumerates every entry directly undertemplate_dir, but Cookiecutter selects the templated child directory (for example,{{cookiecutter.project_slug}}/) and renders only that tree. As a result, bundled templates such asbub/defaultreport the template repository’s outer, author-facingREADME.mdas generated output even though Cookiecutter ignores it; the output can show a second root-levelREADME.mdthat will not exist in the generated project.
Please locate the actual project template directory using Cookiecutter’s selection semantics (or equivalent), derive the hints from that directory, and add a regression test asserting that a template-root metadata file is excluded from the generated layout.
From-scratch implementation of template inspection for `agentseek create`: print template spec, description from templates/index.json, cookiecutter.json input variables, and the project layout the template will generate. Does not run cookiecutter or create any files; external specs are rejected.
157127b to
c764d3f
Compare
|
Thanks for the review! Fixed the blocking issue.
Added regression coverage:
Verified: |
c764d3f to
451b5cc
Compare
Summary
From-scratch implementation of the template description mode for
agentseek create(issue #90).agentseek create bub/default --describeprints the template spec, its description fromtemplates/index.json, the template path, every Cookiecutter input variable fromcookiecutter.json, and the project layout the template will generate (top-level entries expanded one level).create(same catalog, same--checkout/--template-repohandling).--describeexit 2 with a clear message.--list-templates,--template,--checkout,--no-input, and--filterbehavior.Testing
uv run python -m pytest tests/cli_commands/test_create.py -q(119 passed, 6 skipped)uv run python -m pytest tests/ -q(1098 passed, 53 skipped)uv run ruff check src/agentseek/cli/commands/create.py tests/cli_commands/test_create.pyuv run ruff format --check src/agentseek/cli/commands/create.py tests/cli_commands/test_create.pyRefs #90