Conversation
Lessons distilled from review threads on #10624, #10587, #10606, #10622, #10615, #10614, #10661 and #10566 into the internal-doc layer, with compensating cuts so the layer shrinks overall (net -11 lines): - typing.md: drop the stale Python 3.9/3.10 parentheticals ogenstad flagged on #10614; state the built-in-generics rule without versions. - backend-component-design.md: the required-collaborator rule now also names the defaulted-factory shape ajtmccarty flagged on #10587. - query-pattern.md: give 'Keep Cypher readable inline' the sharing boundary from #10624 (substantial multi-consumer body vs few-line MATCH); cut the Query __init__ listing that restated the table. - testing.md: add the no-string-matching-query-text rule from #10624; drop the stale integration-merge plan note and one redundant bad example. - python.md: derived-state/property/__post_init__ rule and the methods-stay-on-the-instance rule from #10587 and #10566 reviews; Query Pattern and Testing sections reduced to pointers to their canonical homes (net 0 for the file). - exceptions.md: domain-errors-not-HTTP-responses layering from the #10622 review thread. - docs/AGENTS.md: FAQ brevity rule from petercrocker's #10615 review. - redirects-pending/learn-labs.yml: record the five lab URLs #10661 deleted without redirect entries, per the existing rule in docs/AGENTS.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RJWaQSqzHWDkykDErJgRkk
Contributor
There was a problem hiding this comment.
All reported issues were addressed across 8 files
Shadow auto-approve: would not auto-approve because issues were found.
Re-trigger cubic
- typing.md: qualify the legacy-Optional rule with the StandardNode persisted-field exception (UP007/UP045 are ignored in those modules). - backend-component-design.md: name the real settings-reaching factory, build_heartbeat_cache, instead of a fabricated symbol. - testing.md: give the query-text rule its own lead-in scoped to feature queries, with the query-building-infrastructure carve-out; correct the stale test-mirror example to paths that exist. - python.md: drop the mirror sentence rather than restating testing.md's. - docs/AGENTS.md: move the FAQ rule from Terminology to Voice and Tone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RJWaQSqzHWDkykDErJgRkk
Contributor
There was a problem hiding this comment.
0 issues found across 5 files (changes from recent commits).
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Shadow auto-approve: would auto-approve. Documentation-only harvest that prunes stale/redundant guidance and adds review-derived rules plus a pending-redirects record; no code, runtime, or public-facing behavior changes, so it is bounded and clearly beneficial.
Re-trigger cubic
This branch has not been deployed
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
Weekly harvest of review lessons (
/harvesting-review, scheduled run). Reviewer comments from the last week keep restating conventions that either weren't written down or weren't landing; this PR routes the durable ones into the internal-doc layer and prunes what they supersede, so the layer ends 11 lines shorter than it started (+59/−49 across 8 files).Targets
stablelike the previous harvests (#10512, #10607): every edited file is internal documentation, branch-agnostic, and reachesdevelopthrough the stable→develop merge.PRs the lessons came from
@staticmethodfor a linterserver.pytyping.mddocs/AGENTS.mdmandates — the missingredirects-pendingrecord is added here__post_init__rejects impossible combinationsWhat changed
What was removed (each cut compensates an addition, per the harvest skill's refine, don't accrete rule):
dev/guidelines/backend/python.mdQueryexample in Query Pattern and the tier bullet list in Testingquery-pattern.md,testing.md); now two-line pointersdev/knowledge/backend/query-pattern.mdQuery.__init__code listingdev/guidelines/backend/testing.mddev/guidelines/backend/typing.mdWhat was added:
dev/knowledge/backend/query-pattern.md— Keep Cypher readable inline now states the sharing boundary the rule lacked (which is why fix(backend): evaluate branch-agnostic retirement per batch when deleting a branch #10624 extracted fragments the reviewer had to ask to inline): a predicate of dozens of lines with 3–4 consumers earns a constant; a few-lineMATCHused twice is pasted into both call sites.dev/guidelines/backend/testing.md— What not to test: no string-matching tests over generated query text; assert behavior in a component test and keep the shape rationale in the query's comments (ajtmccarty on fix(backend): evaluate branch-agnostic retirement per batch when deleting a branch #10624, fix landed in 5ae63da).dev/guidelines/backend/python.md— Don't store what you can derive (property over a mirrored field,__post_init__rejects impossible combinations; polmichel raised this on six threads of feat: publish the repository git-state GraphQL contract [IFC-3146] #10566, fixes in ee9fbe8/ee07f8464/4cc3b915d) and Methods stay on the instance (ajtmccarty on fix: heartbeat thread and linear conflict merge for large branch diffs #10587, reverted in 2178c14; the repo suppressesPLR6301deliberately)..agents/rules/backend-component-design.md— the required-collaborator sentence now also names the defaulted-factory shape (cache_factory: CacheFactory = build_default_cache) that fix: heartbeat thread and linear conflict merge for large branch diffs #10587 shipped and ajtmccarty had to flag; the rule previously only pattern-matched the| None = Noneform.dev/guidelines/backend/exceptions.md— Raise domain errors, never HTTP responses: the layering saltas888 asked about on fix(api): report one 422 error per schema write-contract violation #10622 and polmichel had to reconstruct fromserver.py; written down so the next reader doesn't propose anHTTPExceptioninside a Pydantic validator.docs/AGENTS.md— FAQ answers stay short, and never present a capability that needs explicit deployment as the default (petercrocker's three post-merge comments on docs(faq): correct the backup and upgrade answers #10615, which landed no fix — this rule is the fix).docs/redirects-pending/learn-labs.yml— the record for the fivelearn/labs/*URLs docs(learn): point Infrahub Labs at the labs catalogue #10661 deleted;docs/AGENTS.mdrequires an entry in the same PR and the merged PR carried none. The catalogue lives outside this Docusaurus project, so the file notes that aggregation may need server-level handling.Covered but still flagged (existing rules reviewers had to re-raise; no duplicate rules added):
.agents/rules/code-doc-style.md. docs: always load the comment rule and drop the full-docstring mandate #10657 (merged 09-17) already responded by making the rule always-loaded and adding the exception-contract carve-out; most of this week's violations predate that, so no further edit — worth re-checking next harvest.docs/AGENTS.md(Restructuring + Never list) and was still skipped in docs(learn): point Infrahub Labs at the labs catalogue #10661; this PR fixes the instance rather than adding prose.testing.mdException Testing and Assert exact expectations already cover it.creating-changelog-entriesskill (fix to unreleased change on fix(backend): evaluate branch-agnostic retirement per batch when deleting a branch #10624; imperceptible perf change on feat(graphql): InfrahubRepositoryBranchStatus per-branch attribute read from the graph (IFC-3127) #10606). The skill's boundary is working.Deliberately not codified (recorded so the next harvest doesn't re-litigate):
get_one_by_id_or_default_filternot enforcing itskind(information leak past permissions, feat: publish the repository git-state GraphQL contract [IFC-3146] #10566) — tracked as bug: get_one_by_id_or_default_filter returns nodes of a kind it was not asked for #10655; the systemic fix beats a doc rule.dev/knowledge/backend/tls.md; harvesting them here would duplicate and race it.How to review
Start with the two guideline files that gained rules (
python.md,exceptions.md), then the cuts table above — each cut should read as a no-op against the canonical home it points to.How to test
uv run invoke docs.lint # passes (markdownlint: 0 errors) uv run yamllint docs/redirects-pending/learn-labs.ymlImpact & rollout
Checklist
docs/redirects-pending/record added (not a published page)🤖 Generated with Claude Code
https://claude.ai/code/session_01RJWaQSqzHWDkykDErJgRkk
Generated by Claude Code