docs: ratify project constitution v1.0.0 (#1144)#1163
Open
dgarros wants to merge 2 commits into
Open
Conversation
Populate the empty Spec Kit constitution template with seven project-specific principles (async/sync parity, backward compatibility, layered architecture, type safety & typed errors, test-first, format & lint, documentation accuracy) plus governance and versioning. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Require tests to assert concrete expected values rather than mere truthiness or non-null, so a green test is real evidence. Elevates a rule already in dev/rules/python-testing.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
1 issue found across 1 file
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="dev/constitution.md">
<violation number="1" location="dev/constitution.md:157">
P2: Python 3.14 is currently a declared supported runtime (`requires-python <3.15` and a 3.14 classifier in `pyproject.toml`), so limiting the constitution to 3.10–3.13 conflicts with the package metadata. Include 3.14 so this constraint does not invalidate supported work.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
|
||
| ## Additional Constraints | ||
|
|
||
| - **Tech stack**: Python 3.10–3.13, UV for dependency management, pydantic >= 2.0, httpx, |
Contributor
There was a problem hiding this comment.
P2: Python 3.14 is currently a declared supported runtime (requires-python <3.15 and a 3.14 classifier in pyproject.toml), so limiting the constitution to 3.10–3.13 conflicts with the package metadata. Include 3.14 so this constraint does not invalidate supported work.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At dev/constitution.md, line 157:
<comment>Python 3.14 is currently a declared supported runtime (`requires-python <3.15` and a 3.14 classifier in `pyproject.toml`), so limiting the constitution to 3.10–3.13 conflicts with the package metadata. Include 3.14 so this constraint does not invalidate supported work.</comment>
<file context>
@@ -1,59 +1,197 @@
+
+## Additional Constraints
+
+- **Tech stack**: Python 3.10–3.13, UV for dependency management, pydantic >= 2.0, httpx,
+ graphql-core. Adding a new runtime dependency is an "ask first" decision (`AGENTS.md`).
+- **Generated code**: `protocols.py` and generated documentation are produced by tooling
</file context>
Suggested change
| - **Tech stack**: Python 3.10–3.13, UV for dependency management, pydantic >= 2.0, httpx, | |
| - **Tech stack**: Python 3.10–3.14, UV for dependency management, pydantic >= 2.0, httpx, |
saltas888
approved these changes
Jul 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The Spec Kit constitution (
dev/constitution.md, symlinked from.specify/memory/constitution.md) shipped as an unfilled template(
[PRINCIPLE_1_NAME],[GOVERNANCE_RULES], …). With it empty, Spec Kit had noproject-specific guardrails, so specs/plans/implementations generated through it
could drift from the SDK's established conventions.
Goal: ratify a concrete constitution that encodes the SDK's non-negotiables, each
with enforcement teeth a reviewer or Spec Kit agent can check against a diff.
Non-goals: no changes to
AGENTS.mdordev/knowledge/*(referenced as theoperational how-to layer, not duplicated); no new CI checks; no code changes.
Closes #1144
What changed
Populated the constitution with seven principles, each stated as a testable rule
with a named enforcement mechanism:
test_validate_method_signature/test_method_count.(
__all__), deprecate → survive ≥1 minor → remove only in a major.(the "would a non-CLI consumer duplicate this?" test).
ty/mypyclean; errors use theinfrahub_sdk.exceptionsErrorhierarchy.reproduction test; assertions verify concrete values, not truthiness.
docs-validategreen +hand-written docs describe only real behavior, updated in the same PR.
Plus Additional Constraints, Development Workflow & Quality Gates, and a
Governance section (supremacy, SemVer amendment rules, v1.0.0 ratification).
Authored via
/speckit.constitution. Dependent templates reviewed(
plan-template.md's Constitution Check reads this file at plan time; spec/taskstemplates carry no constitution refs) — no template edits needed.
How to review
Single file:
dev/constitution.md. The Sync Impact Report is an HTML comment atthe top summarizing version, principles, and template review.
How to test
```bash
uv run rumdl check dev/constitution.md # passes clean
```
Impact & rollout
Checklist
ci/skip-changelog; no user-facing change)Summary by cubic
Ratifies the Infrahub Python SDK constitution v1.0.0 in
dev/constitution.md, replacing the empty template. Sets seven enforceable principles and governance to keep the SDK, CLI, and docs aligned; docs-only with no code or CI changes.InfrahubClient/InfrahubClientSync); public API stability via__all__and deprecation windows; SDK‑first layered architecture; strict typing andinfrahub_sdk.exceptions; test‑first with meaningful assertions; format/lint gates; documentation accuracy with generated/validated docs.Written for commit 90e2327. Summary will update on new commits.