Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 1.87 KB

File metadata and controls

36 lines (29 loc) · 1.87 KB

Modules

Reusable Python modules imported by tasks/*.py invoke tasks. All functions are module-level — no classes required except small helper validators in common/cli.py.

Structure

modules/
  common/       # cli, properties, utils helpers
  repo/         # pull, push, log, squash, rebase (git workflow)
  setup/        # creates/stamps properties.yml, called by setup.sh/setup.ps1
  template/     # sync shared, generic tooling with the parent template repo for /template
  tests/        # verify .github/prompts/ mirrors are in sync, called by tasks/tests.py
  versioning/   # check pyproject.toml deps and workflow action refs vs. latest releases, update locks;
                # bump the repo's VERSION file for deploys/releases

Submodules

Directory Purpose
common/ CLI helpers, properties.yml config reader, output/utility helpers
repo/ Git workflow, session logging, squash, and rebase
setup/ Creates/stamps properties.yml, called by setup.sh/setup.ps1
template/ Sync shared, generic tooling with the parent template repo for /template
tests/ Verify .github/prompts/ is mirrored into .claude/commands/, .claude/skills/, and .clinerules/workflows/
versioning/ Check pyproject.toml deps and workflow action refs vs. latest releases, update locks; bump the repo's VERSION file for deploys/releases

Conventions

  • One module per file; filename matches the concern in snake_case
  • Each modules/repo/*.py file exposes a main() entry point
  • Shell out via subprocess.run(..., cwd=repo_path) — never shell=True
  • Use modules.common.utils (success/error/warning/info) for all console output
  • Resolve repo config via modules.common.properties