specsmith 0.2.2.dev44__tar.gz → 0.2.2.dev47__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.
Files changed (102) hide show
  1. {specsmith-0.2.2.dev44/src/specsmith.egg-info → specsmith-0.2.2.dev47}/PKG-INFO +3 -3
  2. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/README.md +2 -2
  3. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/pyproject.toml +1 -1
  4. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/upgrader.py +41 -0
  5. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47/src/specsmith.egg-info}/PKG-INFO +3 -3
  6. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/LICENSE +0 -0
  7. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/setup.cfg +0 -0
  8. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/__init__.py +0 -0
  9. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/__main__.py +0 -0
  10. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/architect.py +0 -0
  11. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/auditor.py +0 -0
  12. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/cli.py +0 -0
  13. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/commands/__init__.py +0 -0
  14. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/compressor.py +0 -0
  15. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/config.py +0 -0
  16. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/credit_analyzer.py +0 -0
  17. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/credits.py +0 -0
  18. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/differ.py +0 -0
  19. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/doctor.py +0 -0
  20. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/executor.py +0 -0
  21. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/exporter.py +0 -0
  22. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/importer.py +0 -0
  23. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/__init__.py +0 -0
  24. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/aider.py +0 -0
  25. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/base.py +0 -0
  26. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/claude_code.py +0 -0
  27. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/copilot.py +0 -0
  28. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/cursor.py +0 -0
  29. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/gemini.py +0 -0
  30. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/warp.py +0 -0
  31. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/integrations/windsurf.py +0 -0
  32. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/ledger.py +0 -0
  33. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/plugins.py +0 -0
  34. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/releaser.py +0 -0
  35. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/requirements.py +0 -0
  36. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/scaffolder.py +0 -0
  37. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/session.py +0 -0
  38. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/agents.md.j2 +0 -0
  39. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  40. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  41. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  42. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  43. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  44. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  45. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  46. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/community/security.md.j2 +0 -0
  47. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  48. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  49. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  50. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  51. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  52. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/docs/workflow.md.j2 +0 -0
  53. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/editorconfig.j2 +0 -0
  54. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/gitattributes.j2 +0 -0
  55. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/gitignore.j2 +0 -0
  56. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/go/go.mod.j2 +0 -0
  57. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/go/main.go.j2 +0 -0
  58. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  59. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  60. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  61. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  62. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  63. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/governance/workflow.md.j2 +0 -0
  64. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/js/package.json.j2 +0 -0
  65. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/ledger.md.j2 +0 -0
  66. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/python/cli.py.j2 +0 -0
  67. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/python/init.py.j2 +0 -0
  68. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  69. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/readme.md.j2 +0 -0
  70. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  71. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  72. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  73. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  74. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  75. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  76. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  77. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  78. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  79. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/tools.py +0 -0
  80. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/updater.py +0 -0
  81. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/validator.py +0 -0
  82. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/vcs/__init__.py +0 -0
  83. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/vcs/base.py +0 -0
  84. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/vcs/bitbucket.py +0 -0
  85. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/vcs/github.py +0 -0
  86. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/vcs/gitlab.py +0 -0
  87. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith/vcs_commands.py +0 -0
  88. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith.egg-info/SOURCES.txt +0 -0
  89. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith.egg-info/dependency_links.txt +0 -0
  90. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith.egg-info/entry_points.txt +0 -0
  91. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith.egg-info/requires.txt +0 -0
  92. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/src/specsmith.egg-info/top_level.txt +0 -0
  93. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_auditor.py +0 -0
  94. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_cli.py +0 -0
  95. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_compressor.py +0 -0
  96. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_importer.py +0 -0
  97. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_integrations.py +0 -0
  98. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_scaffolder.py +0 -0
  99. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_smoke.py +0 -0
  100. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_tools.py +0 -0
  101. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_validator.py +0 -0
  102. {specsmith-0.2.2.dev44 → specsmith-0.2.2.dev47}/tests/test_vcs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.2.2.dev44
3
+ Version: 0.2.2.dev47
4
4
  Summary: Forge governed project scaffolds from the Agentic AI Development Workflow Specification.
5
5
  Author: BitConcepts
6
6
  License: MIT
@@ -45,8 +45,8 @@ Dynamic: license-file
45
45
 
46
46
  [![CI](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml/badge.svg)](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
47
47
  [![Docs](https://readthedocs.org/projects/specsmith/badge/?version=stable)](https://specsmith.readthedocs.io/en/stable/)
48
- [![PyPI Stable](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue)](https://pypi.org/project/specsmith/)
49
- [![PyPI Dev](https://img.shields.io/pypi/v/specsmith?include_prereleases&label=dev&style=flat&color=orange)](https://pypi.org/project/specsmith/#history)
48
+ [![PyPI Stable](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue&cacheSeconds=60)](https://pypi.org/project/specsmith/)
49
+ [![PyPI Dev](https://img.shields.io/pypi/v/specsmith?include_prereleases&label=dev&style=flat&color=orange&cacheSeconds=60)](https://pypi.org/project/specsmith/#history)
50
50
  [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
51
51
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
52
52
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  [![CI](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml/badge.svg)](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
4
4
  [![Docs](https://readthedocs.org/projects/specsmith/badge/?version=stable)](https://specsmith.readthedocs.io/en/stable/)
5
- [![PyPI Stable](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue)](https://pypi.org/project/specsmith/)
6
- [![PyPI Dev](https://img.shields.io/pypi/v/specsmith?include_prereleases&label=dev&style=flat&color=orange)](https://pypi.org/project/specsmith/#history)
5
+ [![PyPI Stable](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue&cacheSeconds=60)](https://pypi.org/project/specsmith/)
6
+ [![PyPI Dev](https://img.shields.io/pypi/v/specsmith?include_prereleases&label=dev&style=flat&color=orange&cacheSeconds=60)](https://pypi.org/project/specsmith/#history)
7
7
  [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
8
8
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
9
9
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.2.2.dev44"
7
+ version = "0.2.2.dev47"
8
8
  description = "Forge governed project scaffolds from the Agentic AI Development Workflow Specification."
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -255,9 +255,13 @@ def _migrate_legacy_filenames(root: Path, result: UpgradeResult) -> None:
255
255
  Handles both case-sensitive (Linux) and case-insensitive (Windows/macOS)
256
256
  filesystems. On case-insensitive FS, uses a two-step rename via a
257
257
  temporary name to avoid conflicts.
258
+
259
+ Also updates references in AGENTS.md so the hub links stay valid.
258
260
  """
259
261
  import shutil
260
262
 
263
+ renamed: list[tuple[str, str]] = []
264
+
261
265
  for old_rel, new_rel in _LEGACY_RENAMES:
262
266
  old_path = root / old_rel
263
267
  new_path = root / new_rel
@@ -276,4 +280,41 @@ def _migrate_legacy_filenames(root: Path, result: UpgradeResult) -> None:
276
280
  shutil.move(str(old_path), str(new_path))
277
281
  else:
278
282
  continue # Both exist as truly separate files — skip
283
+ renamed.append((old_rel, new_rel))
279
284
  result.updated_files.append(f"{old_rel} → {new_rel}")
285
+
286
+ # Update references in user-owned docs that point to renamed files
287
+ if renamed:
288
+ _update_references(root, renamed, result)
289
+
290
+
291
+ def _update_references(
292
+ root: Path,
293
+ renames: list[tuple[str, str]],
294
+ result: UpgradeResult,
295
+ ) -> None:
296
+ """Rewrite old paths to new paths in AGENTS.md and other hub files.
297
+
298
+ Only performs safe string replacement of exact path references.
299
+ """
300
+ docs_to_patch = [
301
+ "AGENTS.md",
302
+ "CLAUDE.md",
303
+ "GEMINI.md",
304
+ ".warp/skills/SKILL.md",
305
+ ".cursor/rules/governance.mdc",
306
+ ".windsurfrules",
307
+ ".aider.conf.yml",
308
+ ]
309
+
310
+ for doc_name in docs_to_patch:
311
+ doc_path = root / doc_name
312
+ if not doc_path.exists():
313
+ continue
314
+ content = doc_path.read_text(encoding="utf-8")
315
+ original = content
316
+ for old_rel, new_rel in renames:
317
+ content = content.replace(old_rel, new_rel)
318
+ if content != original:
319
+ doc_path.write_text(content, encoding="utf-8")
320
+ result.updated_files.append(f"{doc_name} (references updated)")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.2.2.dev44
3
+ Version: 0.2.2.dev47
4
4
  Summary: Forge governed project scaffolds from the Agentic AI Development Workflow Specification.
5
5
  Author: BitConcepts
6
6
  License: MIT
@@ -45,8 +45,8 @@ Dynamic: license-file
45
45
 
46
46
  [![CI](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml/badge.svg)](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
47
47
  [![Docs](https://readthedocs.org/projects/specsmith/badge/?version=stable)](https://specsmith.readthedocs.io/en/stable/)
48
- [![PyPI Stable](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue)](https://pypi.org/project/specsmith/)
49
- [![PyPI Dev](https://img.shields.io/pypi/v/specsmith?include_prereleases&label=dev&style=flat&color=orange)](https://pypi.org/project/specsmith/#history)
48
+ [![PyPI Stable](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue&cacheSeconds=60)](https://pypi.org/project/specsmith/)
49
+ [![PyPI Dev](https://img.shields.io/pypi/v/specsmith?include_prereleases&label=dev&style=flat&color=orange&cacheSeconds=60)](https://pypi.org/project/specsmith/#history)
50
50
  [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
51
51
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
52
52
 
File without changes