Commit graph

9 commits

Author SHA1 Message Date
Sergey
70b8203704
feat(readme): switch support link to /contacts (#270)
* feat(tool): switch create-readme support link to /contacts

* feat(scripts): warn on deprecated support link in readme check

* feat(templates): switch cookiecutter readme support links to contacts

* docs(skill): drop removed validate mode from repo-readme docs

* test(status): cover contacts link warn/fail/ok cases

* fix(ci): shorten lines to satisfy ruff

* fix(ci): apply ruff format

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-05 03:54:59 +03:00
Sergey
c0e8ec816a
refactor(scripts): unify project contract + fix no_db polarity + frontend stack detection (#267)
* refactor(scripts): add project_contract.py single source of truth

* fix(spec-status): word-boundary regex for stack matching (uv!=uvicorn)

* feat(project-status): frontend stack detection + no_db support

* fix(template): cookiecutter use_db=no writes no_db=true marker

* fix(ci): ruff SIM300/PLC0415/W292/E501 in project_contract tests

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-04 23:20:11 +03:00
Sergey
06899b3c01
fix(infra): fullstack api dirs include package name (#261)
* fix(infra): fullstack _api_dirs_for includes package name in path

* test(infra): fullstack thin-routes check coverage for issue #259

* fix(ci): reformat assert in test_project_status for ruff

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-04 13:55:52 +03:00
Sergey
8e00969c3e
feat(skills): code-standards architecture + tests sections, scattered-models check (#256)
* feat(skills): code-standards architecture + tests sections

* feat(infra): scattered-models AST check in project-status

* test(infra): scattered-models check tests (10 cases)

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-04 13:31:15 +03:00
Sergey
baf6b30547
fix(infra): AST route imports + check_tests structure + check_readme full port (#248)
* feat(infra): AST route imports check in project-status

* feat(infra): check_tests structure + AST stub-detector

* feat(infra): check_readme full port from validateReadme

* refactor(infra): drop validate mode from create-readme tool

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-03 20:50:04 +03:00
Sergey
93911f2af6
refactor(infra): eliminate globals + split check_pyproject in project-status (#247)
* refactor(infra): introduce RepoCtx, eliminate globals in project-status

* refactor(infra): split check_pyproject into 13 sub-functions

* test(infra): add RepoCtx + 13 sub-function tests, migrate cookiecutter tests

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-03 20:34:04 +03:00
Sergey
10df459cee
fix(infra): enforce nested src/<package>/ layout in project-status + cookiecutter (#246)
* fix(infra): nested src/<package>/ layout in project-status oracle

* fix(templates): nested packages and drop src. prefix in cookiecutter

* test(infra): cover nested src/<package>/ layout contract #241

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-03 20:06:36 +03:00
Sergey
1e9ee49a1d
feat(infra): check_pyproject and --repo flag in project-status (#240)
* feat(infra): add check_pyproject and --repo flag to project-status

* feat(infra): add repo flag to project-status ts wrapper

* test(infra): add check_pyproject and repo flag tests

* fix(infra): accept packages=["src"] as valid hatchling wheel config

* fix(ci): apply ruff format to project-status.py and tests

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-03 18:36:18 +03:00
Sergey
42c8e2d31e
feat(infra): project-status check oracle and ts wrapper (#233)
* feat(infra): project-status python oracle

* feat(infra): project-status ts wrapper

* feat(infra): project-status deny rules and config

* test(infra): project-status oracle and tool tests

* fix(ci): ruff format project-status.py and tests

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-03 15:31:42 +03:00