git-repokit 0.9.12__tar.gz → 0.10.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {git_repokit-0.9.12/git_repokit.egg-info → git_repokit-0.10.1}/PKG-INFO +6 -3
- {git_repokit-0.9.12 → git_repokit-0.10.1}/README.md +5 -2
- {git_repokit-0.9.12 → git_repokit-0.10.1/git_repokit.egg-info}/PKG-INFO +6 -3
- {git_repokit-0.9.12 → git_repokit-0.10.1}/git_repokit.egg-info/SOURCES.txt +12 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/pyproject.toml +1 -1
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/common_kit.py +24 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/config.py +2 -3
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/defaults.py +6 -4
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/layers.py +9 -1
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/repo_manager.py +11 -1
- git_repokit-0.10.1/repokit/templates/layers/archetypes/paradox/ck3/.repokit-common.toml +28 -0
- git_repokit-0.10.1/repokit/templates/layers/archetypes/paradox/ck3/mod/descriptor.mod +6 -0
- git_repokit-0.10.1/repokit/templates/layers/archetypes/paradox/clausewitz/mod/localisation/english/__RK_SNAKE___l_english.yml +2 -0
- git_repokit-0.10.1/repokit/templates/layers/archetypes/paradox/descriptor-mod/mod/descriptor.mod +9 -0
- git_repokit-0.10.1/repokit/templates/layers/archetypes/paradox/descriptor-mod/mod/thumbnail.png +0 -0
- git_repokit-0.10.1/repokit/templates/layers/archetypes/paradox/jomini/mod/localization/english/__RK_SNAKE___l_english.yml +2 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/js-ts/.repokit-common.toml +4 -3
- git_repokit-0.10.1/repokit/templates/layers/languages/paradox/.gitattributes.rkappend +12 -0
- git_repokit-0.10.1/repokit/templates/layers/languages/paradox/.repokit-common.toml +29 -0
- git_repokit-0.10.1/repokit/templates/layers/languages/paradox/VERSION +1 -0
- git_repokit-0.10.1/repokit/templates/layers/languages/paradox/docs/modding.md +34 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/manifest.toml +113 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/vault.py +8 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_directory_profiles.py +24 -14
- git_repokit-0.10.1/tests/test_languages_setting.py +79 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_layers_claude_plugin.py +3 -3
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_layers_cli.py +5 -1
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_layers_compositions.py +29 -1
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_layers_js_ts.py +3 -1
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_layers_vscode.py +9 -1
- git_repokit-0.10.1/tests/test_paradox.py +177 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_vault_bootstrap.py +20 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/LICENSE +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/MANIFEST.in +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/git_repokit.egg-info/dependency_links.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/git_repokit.egg-info/entry_points.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/git_repokit.egg-info/requires.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/git_repokit.egg-info/top_level.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/__init__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/__main__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/__version__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/__init__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/__init__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/analyzer.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/backend.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/cache.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/parsers.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/transports/__init__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/transports/cli.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/transports/openai_compat.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/transports/prompt_file.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/_vendor/ailib/types.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/auth_integration.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/badges.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/branch_utils.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/cli.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/directory_analyzer.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/directory_profiles.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/git_config.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/github_create.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/github_setup.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/guardrails.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/history_cleaner.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/history_protection.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/hooks/pre-commit-guardrails +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/hooks/pre-commit-template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/0bsd.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/LICENSES.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/__init__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/agpl-3.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/all-rights-reserved.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/apache-2.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/bsd-2-clause.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/bsd-3-clause.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/bsl-1.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/cc-by-4.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/cc-by-sa-4.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/cc0-1.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/epl-2.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/gpl-2.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/gpl-3.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/isc.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/lgpl-2.1.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/lgpl-3.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/mit.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/mpl-2.0.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/proprietary-evaluation.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/licenses/unlicense.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/readme_blocks.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/remote_integration.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/template_engine.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/ai/claude/CLAUDE-nested.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/ai/claude/CLAUDE.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/ai/claude/instructions/step1_context_rebuilder.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/ai/claude/instructions/step2_dev_workflow_process.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/ai/claude/instructions/step3_context_bridge.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/common/CHANGELOG.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/common/CONTRIBUTING.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/common/README.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/common/gitattributes.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/common/gitignore.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/FUNDING.yml.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/ROADMAP.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/dependabot.yml.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/one-offs-README.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/platform-support.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/pull_request_template.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/release-template.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/settings.json.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/extras/stale.yml.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/github/CODEOWNERS.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/github/ISSUE_TEMPLATE/bug-report.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/github/ISSUE_TEMPLATE/feature-request.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/github/issues/notes.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/github/issues/roadmap.md.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/hooks/pre-commit.template +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/any/claude-plugin/.claude-plugin/marketplace.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/any/claude-plugin/plugin/.claude-plugin/plugin.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/any/claude-plugin/plugin/README.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/.github/workflows/ci-c-cpp.yml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/.repokit-common.toml.rkappend +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/.vscode/tasks.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/CMakeLists.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/CMakePresets.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/cmake/GenerateStamp.cmake +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/src/main.cpp +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/tests/test_version.cpp +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/cmake-app/vcpkg.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/minimal/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/minimal/Makefile +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/minimal/build.bat +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/minimal/src/__RK_SNAKE__.c +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/msbuild/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/msbuild/.vscode/tasks.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/msbuild/__RK_PROJECT__.sln +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/msbuild/__RK_PROJECT__.vcxproj +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/c-cpp/msbuild/src/main.cpp +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/claude-plugin/.repokit-common.toml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/claude-plugin/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/claude-plugin/plugin/hooks/hooks.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/claude-plugin/plugin/hooks/scripts/session-start.mjs +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/claude-plugin/plugin/tests/manifest.test.js +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/node/.repokit-common.toml.rkappend +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/node/package.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/node-package/.github/workflows/release.yml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/node-package/package.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/node-package/src/index.ts +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/node-package/tests/index.test.ts +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/script/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/script/__RK_PROJECT__.js +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/script/tests/version.test.js +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/ts/package.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/js-ts/ts/tsconfig.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/claude-plugin/.github/workflows/ci-python.yml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/claude-plugin/.repokit-common.toml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/claude-plugin/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/claude-plugin/VERSION +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/claude-plugin/plugin/hooks/hooks.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/claude-plugin/plugin/hooks/scripts/run-hook.mjs +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/claude-plugin/plugin/hooks/scripts/session_start.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/claude-plugin/plugin/tests/test_manifest.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/.github/workflows/release.yml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/__RK_SNAKE__/__init__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/__RK_SNAKE__/__main__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/__RK_SNAKE__/_version.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/__RK_SNAKE__/cli.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/pyproject.toml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/tests/conftest.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/pypi/tests/test_version.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/script/.github/workflows/ci-python.yml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/script/.repokit-common.toml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/script/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/script/VERSION +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/script/__RK_PROJECT__.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/script/tests/test_version.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/setuppy/requirements.txt +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/archetypes/python/setuppy/setup.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/c-cpp/.gitignore.rkappend +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/c-cpp/.repokit-common.toml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/c-cpp/include/__RK_SNAKE__/version.h +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/c-cpp/src/app.rc +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/js-ts/.editorconfig +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/js-ts/.github/workflows/ci-js-ts.yml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/js-ts/.gitignore.rkappend +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/js-ts/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/js-ts/VERSION +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/python/.github/workflows/ci-python.yml +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/python/.gitignore.rkappend +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/layers/languages/python/.vscode/launch.json +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/vault/CLAUDE.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/vault/claude/_maps/MOC-project.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/vault/claude/_oracle/backlinks.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/vault/claude/_oracle/concepts.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/vault/claude/_oracle/manifest.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/vault/claude/_todo/ACTIVE-WORK.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/templates/vault/claude/_todo/OPEN-LOOPS.md +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/repokit/utils.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/setup.cfg +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/setup.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_badges.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_branch_strategies.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_cli_examples.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_cli_integration.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_core_functionality.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_deployment_scenarios.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_docs_links.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_extras_cli.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_github_create.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_github_integration.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_github_owner.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_github_setup.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_guardrails.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_hermetic.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_hook_encoding.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_hook_patterns.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_layer_action_pins.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_layers.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_layers_c_cpp.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_legacy_smoke.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_license_adopt.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_license_cli.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_licenses.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_new_default.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_packaging.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_private_branch_create.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_readme_blocks.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_run_tests_driver.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_template_parity.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_utils.py +0 -0
- {git_repokit-0.9.12 → git_repokit-0.10.1}/tests/test_vendored_ailib.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: git-repokit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.1
|
|
4
4
|
Summary: Create standardized Git repositories: language presets, licenses, GitHub setup, and a private notes vault
|
|
5
5
|
Author: Dustin Darcy
|
|
6
6
|
License-Expression: MIT
|
|
@@ -58,10 +58,10 @@ Dynamic: license-file
|
|
|
58
58
|
A full create (the [Quick Start](#-quick-start) below) produces:
|
|
59
59
|
|
|
60
60
|
- **The structure:** README, CONTRIBUTING, CHANGELOG, LICENSE, `.gitignore`, `.gitattributes`, `docs/`, `tests/`, `scripts/`, and, if you ask for them, ROADMAP, a funding file, Dependabot, a stale-issue policy and PR and release templates.
|
|
61
|
-
- **The code for its language:** a Python package with `pyproject.toml` and a CLI, a CMake or Visual Studio C/C++ project, a TypeScript npm package, a Claude Code plugin, and more. Each comes with tests, a CI workflow and a VS Code debug configuration
|
|
61
|
+
- **The code for its language:** a Python package with `pyproject.toml` and a CLI, a CMake or Visual Studio C/C++ project, a TypeScript npm package, a Claude Code plugin, a Paradox game mod (Crusader Kings III and others), and more. Each comes with tests, a CI workflow and a VS Code debug configuration where it has something to run, from the first commit. The project's settings name its languages, so the hooks run the right checks. See [Languages and layers](docs/Languages-and-Layers.md).
|
|
62
62
|
- **A README that names the project:** the real GitHub owner, badges for the release, the Python or Node minimum and the license, install and test commands for the preset, and a License section at the end.
|
|
63
63
|
- **The tooling:** [git-repokit-common](https://github.com/DazzleTools/git-repokit-common) vendored at `scripts/repokit-common/`, with git hooks that keep version numbers in step, keep private files out of public commits, and run the tests before a push.
|
|
64
|
-
- **A private vault:** `private/` is its own git repository, ignored by the project, for notes, design documents and
|
|
64
|
+
- **A private vault:** `private/` is its own git repository, ignored by the project, for notes, design documents, postmortems, conversations (`convos/`) and old revisions (`revisions/`); run logs go to `private/logs/`, kept on disk and never versioned. It starts with a map, an index for an oracle session and a to-do board. See [The vault](docs/The-Vault.md).
|
|
65
65
|
- **The repository on GitHub** (with `--github`): created with your `gh` login and pushed. It gets the standard labels, Roadmap and Quick Notes as issues #1 and #2 (pinned), discussions and topics. See [GitHub setup](docs/GitHub-Setup.md).
|
|
66
66
|
|
|
67
67
|
## 📦 Installation
|
|
@@ -173,6 +173,9 @@ repokit create my-app --with c-cpp/msbuild --license gpl-3.0-or-later
|
|
|
173
173
|
# A TypeScript npm package
|
|
174
174
|
repokit create my-lib --language js-ts --license mpl-2.0
|
|
175
175
|
|
|
176
|
+
# A Crusader Kings III mod: the mod in mod/, the repository's own files above it
|
|
177
|
+
repokit create my-mod --language paradox --license mit
|
|
178
|
+
|
|
176
179
|
# A one-file Python script, no packaging, given away to the public domain
|
|
177
180
|
repokit create my-script --with python/script --license unlicense
|
|
178
181
|
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
A full create (the [Quick Start](#-quick-start) below) produces:
|
|
18
18
|
|
|
19
19
|
- **The structure:** README, CONTRIBUTING, CHANGELOG, LICENSE, `.gitignore`, `.gitattributes`, `docs/`, `tests/`, `scripts/`, and, if you ask for them, ROADMAP, a funding file, Dependabot, a stale-issue policy and PR and release templates.
|
|
20
|
-
- **The code for its language:** a Python package with `pyproject.toml` and a CLI, a CMake or Visual Studio C/C++ project, a TypeScript npm package, a Claude Code plugin, and more. Each comes with tests, a CI workflow and a VS Code debug configuration
|
|
20
|
+
- **The code for its language:** a Python package with `pyproject.toml` and a CLI, a CMake or Visual Studio C/C++ project, a TypeScript npm package, a Claude Code plugin, a Paradox game mod (Crusader Kings III and others), and more. Each comes with tests, a CI workflow and a VS Code debug configuration where it has something to run, from the first commit. The project's settings name its languages, so the hooks run the right checks. See [Languages and layers](docs/Languages-and-Layers.md).
|
|
21
21
|
- **A README that names the project:** the real GitHub owner, badges for the release, the Python or Node minimum and the license, install and test commands for the preset, and a License section at the end.
|
|
22
22
|
- **The tooling:** [git-repokit-common](https://github.com/DazzleTools/git-repokit-common) vendored at `scripts/repokit-common/`, with git hooks that keep version numbers in step, keep private files out of public commits, and run the tests before a push.
|
|
23
|
-
- **A private vault:** `private/` is its own git repository, ignored by the project, for notes, design documents and
|
|
23
|
+
- **A private vault:** `private/` is its own git repository, ignored by the project, for notes, design documents, postmortems, conversations (`convos/`) and old revisions (`revisions/`); run logs go to `private/logs/`, kept on disk and never versioned. It starts with a map, an index for an oracle session and a to-do board. See [The vault](docs/The-Vault.md).
|
|
24
24
|
- **The repository on GitHub** (with `--github`): created with your `gh` login and pushed. It gets the standard labels, Roadmap and Quick Notes as issues #1 and #2 (pinned), discussions and topics. See [GitHub setup](docs/GitHub-Setup.md).
|
|
25
25
|
|
|
26
26
|
## 📦 Installation
|
|
@@ -132,6 +132,9 @@ repokit create my-app --with c-cpp/msbuild --license gpl-3.0-or-later
|
|
|
132
132
|
# A TypeScript npm package
|
|
133
133
|
repokit create my-lib --language js-ts --license mpl-2.0
|
|
134
134
|
|
|
135
|
+
# A Crusader Kings III mod: the mod in mod/, the repository's own files above it
|
|
136
|
+
repokit create my-mod --language paradox --license mit
|
|
137
|
+
|
|
135
138
|
# A one-file Python script, no packaging, given away to the public domain
|
|
136
139
|
repokit create my-script --with python/script --license unlicense
|
|
137
140
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: git-repokit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.1
|
|
4
4
|
Summary: Create standardized Git repositories: language presets, licenses, GitHub setup, and a private notes vault
|
|
5
5
|
Author: Dustin Darcy
|
|
6
6
|
License-Expression: MIT
|
|
@@ -58,10 +58,10 @@ Dynamic: license-file
|
|
|
58
58
|
A full create (the [Quick Start](#-quick-start) below) produces:
|
|
59
59
|
|
|
60
60
|
- **The structure:** README, CONTRIBUTING, CHANGELOG, LICENSE, `.gitignore`, `.gitattributes`, `docs/`, `tests/`, `scripts/`, and, if you ask for them, ROADMAP, a funding file, Dependabot, a stale-issue policy and PR and release templates.
|
|
61
|
-
- **The code for its language:** a Python package with `pyproject.toml` and a CLI, a CMake or Visual Studio C/C++ project, a TypeScript npm package, a Claude Code plugin, and more. Each comes with tests, a CI workflow and a VS Code debug configuration
|
|
61
|
+
- **The code for its language:** a Python package with `pyproject.toml` and a CLI, a CMake or Visual Studio C/C++ project, a TypeScript npm package, a Claude Code plugin, a Paradox game mod (Crusader Kings III and others), and more. Each comes with tests, a CI workflow and a VS Code debug configuration where it has something to run, from the first commit. The project's settings name its languages, so the hooks run the right checks. See [Languages and layers](docs/Languages-and-Layers.md).
|
|
62
62
|
- **A README that names the project:** the real GitHub owner, badges for the release, the Python or Node minimum and the license, install and test commands for the preset, and a License section at the end.
|
|
63
63
|
- **The tooling:** [git-repokit-common](https://github.com/DazzleTools/git-repokit-common) vendored at `scripts/repokit-common/`, with git hooks that keep version numbers in step, keep private files out of public commits, and run the tests before a push.
|
|
64
|
-
- **A private vault:** `private/` is its own git repository, ignored by the project, for notes, design documents and
|
|
64
|
+
- **A private vault:** `private/` is its own git repository, ignored by the project, for notes, design documents, postmortems, conversations (`convos/`) and old revisions (`revisions/`); run logs go to `private/logs/`, kept on disk and never versioned. It starts with a map, an index for an oracle session and a to-do board. See [The vault](docs/The-Vault.md).
|
|
65
65
|
- **The repository on GitHub** (with `--github`): created with your `gh` login and pushed. It gets the standard labels, Roadmap and Quick Notes as issues #1 and #2 (pinned), discussions and topics. See [GitHub setup](docs/GitHub-Setup.md).
|
|
66
66
|
|
|
67
67
|
## 📦 Installation
|
|
@@ -173,6 +173,9 @@ repokit create my-app --with c-cpp/msbuild --license gpl-3.0-or-later
|
|
|
173
173
|
# A TypeScript npm package
|
|
174
174
|
repokit create my-lib --language js-ts --license mpl-2.0
|
|
175
175
|
|
|
176
|
+
# A Crusader Kings III mod: the mod in mod/, the repository's own files above it
|
|
177
|
+
repokit create my-mod --language paradox --license mit
|
|
178
|
+
|
|
176
179
|
# A one-file Python script, no packaging, given away to the public domain
|
|
177
180
|
repokit create my-script --with python/script --license unlicense
|
|
178
181
|
|
|
@@ -133,6 +133,12 @@ repokit/templates/layers/archetypes/js-ts/script/.vscode/launch.json
|
|
|
133
133
|
repokit/templates/layers/archetypes/js-ts/script/tests/version.test.js
|
|
134
134
|
repokit/templates/layers/archetypes/js-ts/ts/package.json
|
|
135
135
|
repokit/templates/layers/archetypes/js-ts/ts/tsconfig.json
|
|
136
|
+
repokit/templates/layers/archetypes/paradox/ck3/.repokit-common.toml
|
|
137
|
+
repokit/templates/layers/archetypes/paradox/ck3/mod/descriptor.mod
|
|
138
|
+
repokit/templates/layers/archetypes/paradox/clausewitz/mod/localisation/english/__RK_SNAKE___l_english.yml
|
|
139
|
+
repokit/templates/layers/archetypes/paradox/descriptor-mod/mod/descriptor.mod
|
|
140
|
+
repokit/templates/layers/archetypes/paradox/descriptor-mod/mod/thumbnail.png
|
|
141
|
+
repokit/templates/layers/archetypes/paradox/jomini/mod/localization/english/__RK_SNAKE___l_english.yml
|
|
136
142
|
repokit/templates/layers/archetypes/python/claude-plugin/.repokit-common.toml
|
|
137
143
|
repokit/templates/layers/archetypes/python/claude-plugin/VERSION
|
|
138
144
|
repokit/templates/layers/archetypes/python/claude-plugin/.github/workflows/ci-python.yml
|
|
@@ -168,6 +174,10 @@ repokit/templates/layers/languages/js-ts/.repokit-common.toml
|
|
|
168
174
|
repokit/templates/layers/languages/js-ts/VERSION
|
|
169
175
|
repokit/templates/layers/languages/js-ts/.github/workflows/ci-js-ts.yml
|
|
170
176
|
repokit/templates/layers/languages/js-ts/.vscode/launch.json
|
|
177
|
+
repokit/templates/layers/languages/paradox/.gitattributes.rkappend
|
|
178
|
+
repokit/templates/layers/languages/paradox/.repokit-common.toml
|
|
179
|
+
repokit/templates/layers/languages/paradox/VERSION
|
|
180
|
+
repokit/templates/layers/languages/paradox/docs/modding.md
|
|
171
181
|
repokit/templates/layers/languages/python/.gitignore.rkappend
|
|
172
182
|
repokit/templates/layers/languages/python/.github/workflows/ci-python.yml
|
|
173
183
|
repokit/templates/layers/languages/python/.vscode/launch.json
|
|
@@ -195,6 +205,7 @@ tests/test_guardrails.py
|
|
|
195
205
|
tests/test_hermetic.py
|
|
196
206
|
tests/test_hook_encoding.py
|
|
197
207
|
tests/test_hook_patterns.py
|
|
208
|
+
tests/test_languages_setting.py
|
|
198
209
|
tests/test_layer_action_pins.py
|
|
199
210
|
tests/test_layers.py
|
|
200
211
|
tests/test_layers_c_cpp.py
|
|
@@ -209,6 +220,7 @@ tests/test_license_cli.py
|
|
|
209
220
|
tests/test_licenses.py
|
|
210
221
|
tests/test_new_default.py
|
|
211
222
|
tests/test_packaging.py
|
|
223
|
+
tests/test_paradox.py
|
|
212
224
|
tests/test_private_branch_create.py
|
|
213
225
|
tests/test_readme_blocks.py
|
|
214
226
|
tests/test_run_tests_driver.py
|
|
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
|
|
|
8
8
|
# PyPI's trusted publisher is registered for this name (DazzleTools/git-repokit,
|
|
9
9
|
# publish.yml, environment pypi); the command stays `repokit`
|
|
10
10
|
name = "git-repokit"
|
|
11
|
-
version = "0.
|
|
11
|
+
version = "0.10.1"
|
|
12
12
|
description = "Create standardized Git repositories: language presets, licenses, GitHub setup, and a private notes vault"
|
|
13
13
|
readme = "README.md"
|
|
14
14
|
license = "MIT"
|
|
@@ -124,6 +124,30 @@ def private_branch_settings(private_branch: Optional[str], private_paths: List[s
|
|
|
124
124
|
return settings
|
|
125
125
|
|
|
126
126
|
|
|
127
|
+
def languages_setting(languages: List[str], layer_folders: List[str]) -> List[str]:
|
|
128
|
+
"""The `languages` value a create writes for git-repokit-common's hooks.
|
|
129
|
+
|
|
130
|
+
repokit's language names mapped to repokit-common's, in the composed
|
|
131
|
+
order (the first is primary): js-ts is "typescript" when the ts layer is
|
|
132
|
+
part of the composition, else "javascript"; python, c-cpp and paradox
|
|
133
|
+
are the same names; generic and the `any` pseudo-language add nothing.
|
|
134
|
+
Writing it, rather than leaving the hooks to detect it from the root,
|
|
135
|
+
keeps a project whose markers sit in a subfolder (a plugin in plugin/)
|
|
136
|
+
from reading as Python (design 2026-10-30__08-28-15, Addendum 2).
|
|
137
|
+
"""
|
|
138
|
+
out: List[str] = []
|
|
139
|
+
for lang in languages:
|
|
140
|
+
if lang == "js-ts":
|
|
141
|
+
name = "typescript" if any(f.endswith("js-ts/ts") for f in layer_folders) else "javascript"
|
|
142
|
+
elif lang in ("python", "c-cpp", "paradox"):
|
|
143
|
+
name = lang
|
|
144
|
+
else:
|
|
145
|
+
continue
|
|
146
|
+
if name not in out:
|
|
147
|
+
out.append(name)
|
|
148
|
+
return out
|
|
149
|
+
|
|
150
|
+
|
|
127
151
|
def _toml_list(values: List[str]) -> str:
|
|
128
152
|
return "[" + ", ".join('"' + v.replace("\\", "\\\\").replace('"', '\\"') + '"' for v in values) + "]"
|
|
129
153
|
|
|
@@ -59,12 +59,11 @@ class ConfigManager:
|
|
|
59
59
|
# replaces them with the chosen strategy's values
|
|
60
60
|
"branches": list(BRANCH_STRATEGIES[DEFAULT_BRANCH_STRATEGY]["branches"]),
|
|
61
61
|
"worktrees": list(BRANCH_STRATEGIES[DEFAULT_BRANCH_STRATEGY]["worktrees"]),
|
|
62
|
+
# convos/, revisions/ and logs/ live in private/ since 0.10.0
|
|
63
|
+
# (vault.PRIVATE_STRUCTURE), not at the project root
|
|
62
64
|
"directories": [
|
|
63
|
-
"convos",
|
|
64
65
|
"docs",
|
|
65
|
-
"logs",
|
|
66
66
|
"private",
|
|
67
|
-
"revisions",
|
|
68
67
|
"scripts",
|
|
69
68
|
"tests",
|
|
70
69
|
],
|
|
@@ -180,15 +180,17 @@ def strategy_push_branches(name: str) -> List[str]:
|
|
|
180
180
|
DEFAULT_BRANCH_STRATEGIES = {name: strategy_branch_list(name) for name in BRANCH_STRATEGIES}
|
|
181
181
|
|
|
182
182
|
# Default directory profiles - centralized from directory_profiles.py
|
|
183
|
+
# convos/, revisions/ and logs/ are made inside private/ (vault.PRIVATE_STRUCTURE)
|
|
184
|
+
# since 0.10.0, never at the project root; DEFAULT_PRIVATE_DIRS still names
|
|
185
|
+
# them, so a root folder an older project has stays out of public history.
|
|
183
186
|
DEFAULT_DIRECTORY_PROFILES = {
|
|
184
187
|
"minimal": ["src", "tests", "docs"],
|
|
185
188
|
"standard": [
|
|
186
|
-
"src", "tests", "docs", "scripts", "config",
|
|
187
|
-
"logs", "private", "convos", "revisions"
|
|
189
|
+
"src", "tests", "docs", "scripts", "config", "private"
|
|
188
190
|
],
|
|
189
191
|
"complete": [
|
|
190
|
-
"src", "tests", "docs", "scripts", "config",
|
|
191
|
-
"private", "
|
|
192
|
+
"src", "tests", "docs", "scripts", "config",
|
|
193
|
+
"private", "data", "examples",
|
|
192
194
|
"tools", "resources", "assets"
|
|
193
195
|
]
|
|
194
196
|
}
|
|
@@ -376,14 +376,22 @@ def catalogue_lines(manifest: Dict[str, Any], language: Optional[str] = None) ->
|
|
|
376
376
|
head = f"{lang}:" + (f" (planned: {entry.get('description', '')})" if entry.get("stub") else "")
|
|
377
377
|
lines.append(head)
|
|
378
378
|
default = entry.get("default")
|
|
379
|
+
planned = []
|
|
379
380
|
for key in sorted(k for k in manifest["archetypes"] if k.startswith(lang + "/")):
|
|
380
381
|
preset = manifest["archetypes"][key]
|
|
381
382
|
if preset.get("stub"):
|
|
382
|
-
|
|
383
|
+
if language:
|
|
384
|
+
lines.append(f" {key:28} (planned: {preset.get('description', '')})")
|
|
385
|
+
else:
|
|
386
|
+
planned.append(key.split("/", 1)[1])
|
|
383
387
|
else:
|
|
384
388
|
parts = [f.split("/", 2)[-1] for f in preset.get("layers", [])]
|
|
385
389
|
mark = " <- default" if key == default else ""
|
|
386
390
|
lines.append(f" {key:28} = {', '.join(parts)}{mark}")
|
|
391
|
+
if planned:
|
|
392
|
+
# The overview keeps one screen (AC-10): a language's planned presets
|
|
393
|
+
# share a line; `repokit list <lang>` shows each with its description.
|
|
394
|
+
lines.append(f" {'planned:':28} {', '.join(planned)}")
|
|
387
395
|
for facet, spec in facets:
|
|
388
396
|
if facet == "language":
|
|
389
397
|
continue
|
|
@@ -247,7 +247,8 @@ class RepoManager:
|
|
|
247
247
|
# Create standard subdirectories
|
|
248
248
|
standard_dirs = self.config.get(
|
|
249
249
|
"directories",
|
|
250
|
-
|
|
250
|
+
# convos/, revisions/, logs/: in private/ since 0.10.0 (vault.py)
|
|
251
|
+
["docs", "private", "scripts", "tests"],
|
|
251
252
|
)
|
|
252
253
|
|
|
253
254
|
for directory in standard_dirs:
|
|
@@ -981,6 +982,15 @@ class RepoManager:
|
|
|
981
982
|
print(f"Note: .vscode/ holds {resolution.languages[0]}'s debug configurations; "
|
|
982
983
|
f"{', '.join(others)}'s were not merged in (add them to .vscode/launch.json by hand)")
|
|
983
984
|
self.logger.info(f"Code-type layers {', '.join(resolution.layers)}: {len(written)} files")
|
|
985
|
+
|
|
986
|
+
# Say what the project is, for git-repokit-common's hooks: the languages
|
|
987
|
+
# it was composed from, written unless a layer's settings already name
|
|
988
|
+
# them (paradox, c-cpp). Detection stays the hooks' fallback for
|
|
989
|
+
# adopted projects; a created one should not depend on it.
|
|
990
|
+
from . import common_kit
|
|
991
|
+
langs = common_kit.languages_setting(resolution.languages, resolution.layers)
|
|
992
|
+
if langs:
|
|
993
|
+
common_kit.write_settings(self.repo_root, {"languages": langs})
|
|
984
994
|
for note in resolution.notes:
|
|
985
995
|
# Once, to the person: a composition no preset vouches for (with
|
|
986
996
|
# the tokens it was assembled from), or a language left bare.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# git-repokit-common settings for __RK_PROJECT__, a Crusader Kings III mod.
|
|
2
|
+
#
|
|
3
|
+
# The mod itself is mod/: the folder the game loads and the one a Workshop
|
|
4
|
+
# upload ships. Everything else (this file, VERSION, scripts/, tests/,
|
|
5
|
+
# private/) stays above it and never reaches the game or the Workshop.
|
|
6
|
+
#
|
|
7
|
+
# The version lives in VERSION; the vendored tool at scripts/repokit-common/
|
|
8
|
+
# keeps mod/descriptor.mod's version line in step with it (a pattern target:
|
|
9
|
+
# only the version text changes, the file's bytes otherwise untouched).
|
|
10
|
+
#
|
|
11
|
+
# The hooks: languages = ["paradox"] runs the paradox profile -- on push
|
|
12
|
+
# ck3-tiger when it is installed (advisory, never blocking), on commit a check
|
|
13
|
+
# that localization .yml files keep their UTF-8 BOM -- and no Python checks.
|
|
14
|
+
|
|
15
|
+
[tool.repokit-common]
|
|
16
|
+
version-source = "VERSION"
|
|
17
|
+
changelog = "CHANGELOG.md"
|
|
18
|
+
repo-url = "https://github.com/__RK_ORG__/__RK_PROJECT__"
|
|
19
|
+
tag-prefix = "v"
|
|
20
|
+
tag-format = "human"
|
|
21
|
+
private-patterns = ["private/", "local/", ".env"]
|
|
22
|
+
languages = ["paradox"]
|
|
23
|
+
paradox-game = "ck3"
|
|
24
|
+
|
|
25
|
+
[[tool.repokit-common.extra-targets]]
|
|
26
|
+
path = "mod/descriptor.mod"
|
|
27
|
+
pattern = '^version="([^"]*)"\r?$'
|
|
28
|
+
format = "base"
|
git_repokit-0.10.1/repokit/templates/layers/archetypes/paradox/descriptor-mod/mod/descriptor.mod
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Set supported_version to the game version this mod is made for: "1.20.*" for
|
|
2
|
+
# Crusader Kings III 1.20, for example. "*" loads on any version, with the
|
|
3
|
+
# launcher's warning. version follows the VERSION file (sync-versions.py).
|
|
4
|
+
version="0.1.0"
|
|
5
|
+
tags={
|
|
6
|
+
"Utilities"
|
|
7
|
+
}
|
|
8
|
+
name="__RK_PROJECT__"
|
|
9
|
+
supported_version="*"
|
git_repokit-0.10.1/repokit/templates/layers/archetypes/paradox/descriptor-mod/mod/thumbnail.png
ADDED
|
Binary file
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
# A JavaScript/TypeScript project keeps its version in package.json; the
|
|
4
4
|
# vendored tooling at scripts/repokit-common/ treats the plain VERSION file as
|
|
5
5
|
# the source and package.json (and any other manifest a layer adds) as a
|
|
6
|
-
# target it keeps in step, so one bump moves every copy.
|
|
7
|
-
#
|
|
8
|
-
# root (package.json
|
|
6
|
+
# target it keeps in step, so one bump moves every copy. `repokit create`
|
|
7
|
+
# adds the product's `languages` below (typescript with the ts layer, else
|
|
8
|
+
# javascript); the hooks' detection from the root (package.json, tsconfig.json)
|
|
9
|
+
# is only their fallback, and it cannot see a plugin's markers in plugin/.
|
|
9
10
|
|
|
10
11
|
[tool.repokit-common]
|
|
11
12
|
version-source = "VERSION"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
# Paradox mod files: the game reads their bytes as they are -- a localization
|
|
3
|
+
# file without its UTF-8 BOM is skipped, and line endings stay as written --
|
|
4
|
+
# so git must never convert them on checkout or commit.
|
|
5
|
+
mod/**/*.txt -text
|
|
6
|
+
mod/**/*.yml -text
|
|
7
|
+
mod/**/*.mod -text
|
|
8
|
+
mod/**/*.gui -text
|
|
9
|
+
mod/**/*.gfx -text
|
|
10
|
+
mod/**/*.asset -text
|
|
11
|
+
mod/**/*.shader -text
|
|
12
|
+
mod/**/*.csv -text
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# git-repokit-common settings for __RK_PROJECT__, a Paradox game mod.
|
|
2
|
+
#
|
|
3
|
+
# The mod itself is mod/: the folder the game loads and the one a Workshop
|
|
4
|
+
# upload ships. Everything else (this file, VERSION, scripts/, tests/,
|
|
5
|
+
# private/) stays above it and never reaches the game or the Workshop.
|
|
6
|
+
#
|
|
7
|
+
# The version lives in VERSION; the vendored tool at scripts/repokit-common/
|
|
8
|
+
# keeps mod/descriptor.mod's version line in step with it (a pattern target:
|
|
9
|
+
# only the version text changes, the file's bytes otherwise untouched).
|
|
10
|
+
#
|
|
11
|
+
# The hooks: languages = ["paradox"] runs the paradox profile -- on push the
|
|
12
|
+
# game's Tiger linter when it is installed (advisory, never blocking), on
|
|
13
|
+
# commit a check that localization .yml files keep their UTF-8 BOM -- and
|
|
14
|
+
# no Python checks. Set paradox-game to your game to choose the linter.
|
|
15
|
+
|
|
16
|
+
[tool.repokit-common]
|
|
17
|
+
version-source = "VERSION"
|
|
18
|
+
changelog = "CHANGELOG.md"
|
|
19
|
+
repo-url = "https://github.com/__RK_ORG__/__RK_PROJECT__"
|
|
20
|
+
tag-prefix = "v"
|
|
21
|
+
tag-format = "human"
|
|
22
|
+
private-patterns = ["private/", "local/", ".env"]
|
|
23
|
+
languages = ["paradox"]
|
|
24
|
+
# paradox-game = "ck3" # ck3, vic3 or imperator have a Tiger linter
|
|
25
|
+
|
|
26
|
+
[[tool.repokit-common.extra-targets]]
|
|
27
|
+
path = "mod/descriptor.mod"
|
|
28
|
+
pattern = '^version="([^"]*)"\r?$'
|
|
29
|
+
format = "base"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.1.0
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Working on __RK_PROJECT__
|
|
2
|
+
|
|
3
|
+
This repository holds a Paradox game mod. The mod itself is `mod/`: the folder the game loads, and the folder a Workshop upload ships. Everything else stays above it, so it never reaches the game or the Workshop.
|
|
4
|
+
|
|
5
|
+
## Load the working copy in the game
|
|
6
|
+
|
|
7
|
+
The game finds a local mod through a small pointer file in its Documents folder, `Documents\Paradox Interactive\<Game>\mod\__RK_PROJECT__.mod`. For Crusader Kings III, `<Game>` is `Crusader Kings III`. Write it once, with any editor:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
name="__RK_PROJECT__"
|
|
11
|
+
path="C:/path/to/__RK_PROJECT__/mod"
|
|
12
|
+
supported_version="1.20.*"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
`path` names this repository's `mod/` folder, with forward slashes. Then enable the mod in the game's launcher. git-repokit never writes this file, and never touches the launcher's own files: they belong to the game.
|
|
16
|
+
|
|
17
|
+
## Version
|
|
18
|
+
|
|
19
|
+
The version lives in `VERSION`, and `mod/descriptor.mod`'s `version="..."` line follows it:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
python scripts/repokit-common/sync-versions.py --bump patch
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Only that line changes. `supported_version`, the encoding and the line endings stay as they were.
|
|
26
|
+
|
|
27
|
+
## Checks
|
|
28
|
+
|
|
29
|
+
- **On push:** the game's [Tiger](https://github.com/amtep/tiger) linter (`ck3-tiger`, `vic3-tiger`, `imperator-tiger`) runs on the mod when it is on PATH. The push shows Tiger's summary line, and the full report goes to `.git/repokit-<linter>.txt`. Findings never block. Set `paradox-game` in `.repokit-common.toml` to choose the linter.
|
|
30
|
+
- **On commit:** a localization `.yml` saved without a UTF-8 BOM is refused. The game would skip it without an error, and its keys would show raw in the game.
|
|
31
|
+
|
|
32
|
+
## Encoding
|
|
33
|
+
|
|
34
|
+
Keep localization files as **UTF-8 with BOM**, and script files as the game expects. `.gitattributes` stops git from converting anything under `mod/`.
|
|
@@ -63,6 +63,17 @@ default = "c-cpp/cmake-app"
|
|
|
63
63
|
layers = ["languages/js-ts"]
|
|
64
64
|
default = "js-ts/node-package"
|
|
65
65
|
|
|
66
|
+
# Paradox game mods (Crusader Kings III, Victoria 3, Stellaris, ...). The mod
|
|
67
|
+
# itself is mod/, the folder the game loads and a Workshop upload ships; the
|
|
68
|
+
# repository's own files stay above it. The facets are the existing ones
|
|
69
|
+
# (design 2026-10-30__08-28-15, Addendum 2): the engine is the script's
|
|
70
|
+
# dialect (jomini, clausewitz), the descriptor kind is how the mod is packaged
|
|
71
|
+
# (build), the game is what it is (purpose) -- ranked so the game's files are
|
|
72
|
+
# applied last and win.
|
|
73
|
+
[languages.paradox]
|
|
74
|
+
layers = ["languages/paradox"]
|
|
75
|
+
default = "paradox/ck3"
|
|
76
|
+
|
|
66
77
|
# A pseudo-language: the folder prefix for layer files several languages share
|
|
67
78
|
# (the Claude plugin's manifests and marketplace README). Never a project
|
|
68
79
|
# language: --language refuses it, `repokit list` and the bare-name lookup do
|
|
@@ -211,6 +222,69 @@ facet = "framework"
|
|
|
211
222
|
stub = true
|
|
212
223
|
description = "Qt 6: find_package(Qt6), qt_add_executable, windeployqt"
|
|
213
224
|
|
|
225
|
+
# paradox: engine layers carry engine-wide files only (the localization folder,
|
|
226
|
+
# spelled as the engine spells it); the game layer owns the game's descriptor
|
|
227
|
+
# and settings and overrides the generic ones.
|
|
228
|
+
|
|
229
|
+
[layers."paradox/jomini"]
|
|
230
|
+
facet = "dialect"
|
|
231
|
+
description = "the Jomini engine (Crusader Kings III, Imperator, Victoria 3, Europa Universalis V): mod/localization/english/ with a UTF-8 BOM"
|
|
232
|
+
|
|
233
|
+
[layers."paradox/clausewitz"]
|
|
234
|
+
facet = "dialect"
|
|
235
|
+
description = "the Clausewitz engine (Stellaris, Hearts of Iron IV, Europa Universalis IV): mod/localisation/english/ with a UTF-8 BOM"
|
|
236
|
+
|
|
237
|
+
[layers."paradox/descriptor-mod"]
|
|
238
|
+
facet = "build"
|
|
239
|
+
description = "a descriptor.mod in mod/ (version, name, tags, supported_version) and a thumbnail.png"
|
|
240
|
+
|
|
241
|
+
[layers."paradox/metadata-json"]
|
|
242
|
+
facet = "build"
|
|
243
|
+
stub = true
|
|
244
|
+
description = "Victoria 3's .metadata/metadata.json in place of descriptor.mod (planned with paradox/vic3)"
|
|
245
|
+
|
|
246
|
+
[layers."paradox/ck3"]
|
|
247
|
+
facet = "purpose"
|
|
248
|
+
implies = ["jomini", "descriptor-mod"]
|
|
249
|
+
overrides = ["mod/descriptor.mod", ".repokit-common.toml"]
|
|
250
|
+
description = "a Crusader Kings III mod: supported_version 1.20.*, paradox-game = \"ck3\" (ck3-tiger on push)"
|
|
251
|
+
|
|
252
|
+
[layers."paradox/vic3"]
|
|
253
|
+
facet = "purpose"
|
|
254
|
+
stub = true
|
|
255
|
+
implies = ["jomini", "metadata-json"]
|
|
256
|
+
description = "a Victoria 3 mod (planned)"
|
|
257
|
+
|
|
258
|
+
[layers."paradox/imperator"]
|
|
259
|
+
facet = "purpose"
|
|
260
|
+
stub = true
|
|
261
|
+
implies = ["jomini", "descriptor-mod"]
|
|
262
|
+
description = "an Imperator: Rome mod (planned)"
|
|
263
|
+
|
|
264
|
+
[layers."paradox/eu5"]
|
|
265
|
+
facet = "purpose"
|
|
266
|
+
stub = true
|
|
267
|
+
implies = ["jomini"]
|
|
268
|
+
description = "a Europa Universalis V mod (planned; its descriptor is not confirmed)"
|
|
269
|
+
|
|
270
|
+
[layers."paradox/stellaris"]
|
|
271
|
+
facet = "purpose"
|
|
272
|
+
stub = true
|
|
273
|
+
implies = ["clausewitz", "descriptor-mod"]
|
|
274
|
+
description = "a Stellaris mod (planned)"
|
|
275
|
+
|
|
276
|
+
[layers."paradox/hoi4"]
|
|
277
|
+
facet = "purpose"
|
|
278
|
+
stub = true
|
|
279
|
+
implies = ["clausewitz", "descriptor-mod"]
|
|
280
|
+
description = "a Hearts of Iron IV mod (planned; its descriptor must have no BOM)"
|
|
281
|
+
|
|
282
|
+
[layers."paradox/eu4"]
|
|
283
|
+
facet = "purpose"
|
|
284
|
+
stub = true
|
|
285
|
+
implies = ["clausewitz", "descriptor-mod"]
|
|
286
|
+
description = "a Europa Universalis IV mod (planned)"
|
|
287
|
+
|
|
214
288
|
# ---------------------------------------------------------------- presets
|
|
215
289
|
# `layers` lists layer folders in apply order; `languages` is implied by the key.
|
|
216
290
|
|
|
@@ -300,3 +374,42 @@ description = "Library with install/export targets and a package config (starts
|
|
|
300
374
|
[archetypes."c-cpp/qt"]
|
|
301
375
|
stub = true
|
|
302
376
|
description = "Qt 6 app: find_package(Qt6), qt_add_executable, windeployqt (starts from cmake-app)"
|
|
377
|
+
|
|
378
|
+
[archetypes."paradox/ck3"]
|
|
379
|
+
languages = ["paradox"]
|
|
380
|
+
layers = ["archetypes/paradox/jomini", "archetypes/paradox/descriptor-mod", "archetypes/paradox/ck3"]
|
|
381
|
+
description = "a Crusader Kings III mod in mod/: descriptor.mod for 1.20, English localization with its BOM, a thumbnail; VERSION kept in step with the descriptor; ck3-tiger on push"
|
|
382
|
+
|
|
383
|
+
[archetypes."paradox/jomini"]
|
|
384
|
+
languages = ["paradox"]
|
|
385
|
+
layers = ["archetypes/paradox/jomini", "archetypes/paradox/descriptor-mod"]
|
|
386
|
+
description = "a mod for any Jomini game (Crusader Kings III, Imperator, ...): a generic descriptor.mod (supported_version \"*\") and mod/localization/; set paradox-game for its linter"
|
|
387
|
+
|
|
388
|
+
[archetypes."paradox/clausewitz"]
|
|
389
|
+
languages = ["paradox"]
|
|
390
|
+
layers = ["archetypes/paradox/clausewitz", "archetypes/paradox/descriptor-mod"]
|
|
391
|
+
description = "a mod for any Clausewitz game (Stellaris, Hearts of Iron IV, Europa Universalis IV): a generic descriptor.mod and mod/localisation/"
|
|
392
|
+
|
|
393
|
+
[archetypes."paradox/vic3"]
|
|
394
|
+
stub = true
|
|
395
|
+
description = "a Victoria 3 mod (.metadata/metadata.json)"
|
|
396
|
+
|
|
397
|
+
[archetypes."paradox/imperator"]
|
|
398
|
+
stub = true
|
|
399
|
+
description = "an Imperator: Rome mod"
|
|
400
|
+
|
|
401
|
+
[archetypes."paradox/eu5"]
|
|
402
|
+
stub = true
|
|
403
|
+
description = "a Europa Universalis V mod"
|
|
404
|
+
|
|
405
|
+
[archetypes."paradox/stellaris"]
|
|
406
|
+
stub = true
|
|
407
|
+
description = "a Stellaris mod"
|
|
408
|
+
|
|
409
|
+
[archetypes."paradox/hoi4"]
|
|
410
|
+
stub = true
|
|
411
|
+
description = "a Hearts of Iron IV mod (a descriptor without BOM)"
|
|
412
|
+
|
|
413
|
+
[archetypes."paradox/eu4"]
|
|
414
|
+
stub = true
|
|
415
|
+
description = "a Europa Universalis IV mod"
|
|
@@ -24,9 +24,16 @@ PRIVATE_STRUCTURE = [
|
|
|
24
24
|
"claude",
|
|
25
25
|
"claude/commits",
|
|
26
26
|
"claude/issues",
|
|
27
|
+
"convos",
|
|
27
28
|
"docs",
|
|
29
|
+
"logs",
|
|
28
30
|
"notes",
|
|
31
|
+
"revisions",
|
|
29
32
|
]
|
|
33
|
+
# convos/, revisions/ and logs/ were project-root folders until 0.10.0, held
|
|
34
|
+
# out of public history only by ignore rules and the pre-commit guard; inside
|
|
35
|
+
# the vault they cannot reach a public remote at all (djdarcy, 2026-10-31).
|
|
36
|
+
# logs/ is run output, so the vault ignores it (PRIVATE_GITIGNORE_SECTIONS).
|
|
30
37
|
|
|
31
38
|
# What the vault ignores (private_init.PRIVATE_GITIGNORE_SECTIONS)
|
|
32
39
|
PRIVATE_GITIGNORE_SECTIONS = [
|
|
@@ -35,6 +42,7 @@ PRIVATE_GITIGNORE_SECTIONS = [
|
|
|
35
42
|
("OS", [".DS_Store", "Thumbs.db", "desktop.ini"]),
|
|
36
43
|
("Temp files", ["*.tmp", "*.bak"]),
|
|
37
44
|
("Agent working state -- written by tools, never versioned", [".gauntlet/"]),
|
|
45
|
+
("Run logs -- program output, kept on disk and never versioned", ["logs/"]),
|
|
38
46
|
]
|
|
39
47
|
|
|
40
48
|
# What the parent project ignores besides private/ itself
|
|
@@ -293,20 +293,30 @@ class TestConfigManagerDirectoryProfiles(unittest.TestCase):
|
|
|
293
293
|
self.assertIn("local", private_dirs)
|
|
294
294
|
|
|
295
295
|
def test_backward_compatibility(self):
|
|
296
|
-
"""
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
296
|
+
"""No profile: the default directories. Run from an empty folder: the
|
|
297
|
+
config manager reads a .repokit.json in the current directory, and in
|
|
298
|
+
git-repokit's own checkout that record (2025) still lists convos/, logs/
|
|
299
|
+
and revisions/ -- which kept this test green whatever the defaults said.
|
|
300
|
+
Since 0.10.0 those three live in private/, never at the project root."""
|
|
301
|
+
cwd = os.getcwd()
|
|
302
|
+
os.chdir(tempfile.mkdtemp())
|
|
303
|
+
try:
|
|
304
|
+
manager = ConfigManager()
|
|
305
|
+
manager.cli_config = {"name": "testproject"}
|
|
306
|
+
manager.config = manager._merge_configs()
|
|
307
|
+
manager.resolve_directory_profiles()
|
|
308
|
+
finally:
|
|
309
|
+
os.chdir(cwd)
|
|
310
|
+
dirs = manager.config.get("directories", [])
|
|
311
|
+
for d in ("docs", "private", "scripts", "tests"):
|
|
312
|
+
self.assertIn(d, dirs)
|
|
313
|
+
for d in ("convos", "logs", "revisions"):
|
|
314
|
+
self.assertNotIn(d, dirs)
|
|
315
|
+
for profile in ("standard", "complete"):
|
|
316
|
+
listed = DirectoryProfileManager().profiles[profile]
|
|
317
|
+
self.assertFalse({"convos", "logs", "revisions"} & set(listed), profile)
|
|
318
|
+
# still protected: an older project's root folders stay out of public history
|
|
319
|
+
self.assertTrue({"convos", "logs", "revisions"} <= set(manager.config["private_dirs"]))
|
|
310
320
|
|
|
311
321
|
|
|
312
322
|
if __name__ == "__main__":
|