Repository navigation
Conversation
Add a one-paragraph House rules section to the core rules. The user's request or brief, a recorded ruling, the project's agent instruction files and user-written memory (rule 11's trusted set), and the codebase's conventions take precedence over konductor's defaults for formats, branching, PRs, review host and commit style. NEVER rules and the tests-pass requirement never yield. A review both rule sets ask for runs once; findings that enforce an overridden default are discarded. Unsettled collisions are asked once and recorded as an [origin:user] "Ruling:" memory entry. Companion edits: the writing-habits precedence sentence now defers to the new section; persistent-memory treats a ruling answer as dictated; the orchestrator copies Ruling: entries into briefs verbatim. CHANGELOG: one bullet under Unreleased/Changed; VERSION unchanged. Verified from the worktree root: - make build && make synth: pass (11 agents, 2 context files) - cargo test (cli/konductor-rs): pass, 1780 passed, 0 failed. A first run had one failure in telemetry_hook_scoping (synth could not package a scratch dist/ tree); it passed alone and on a full rerun. - make test-skills-sh: pass - No em/en dashes in added lines; k-core-rules.md is 6281 bytes - House rules text present in dist/kiro-cli-v2/context/k-core-rules.md, referenced by all 11 Kiro agent specs, inlined in all 11 Claude agents - No tests assert k-core-rules.md content or size (per design)
added 28 commits
October 30, 2026 02:28
…precedence Conflicts: - CHANGELOG.md: kept the parent's memory and review bullets, then this branch's house-rules bullet. - context/k-orchestrator-routing-rules.md: kept the parent's stricter provenance check; the Ruling copy sentence now keys off the memory line instead of the old 'directory is untracked' wording. - skills/persistent-memory/SKILL.md: kept the parent's brief-quote rule, then this branch's Ruling sentence.
…evel A ruling copied into a brief used to rank as a brief instruction, above the instruction-file line that overrides it. Briefs now list copied rulings under a labelled line that ranks them as recorded rulings, and the orchestrator leaves out any ruling an instruction-file line overrides.
Findings that enforce an overridden konductor default were discarded with no record, so a broad reading of a house rule could silently drop a valid finding. They are now left unreworked and listed in the result with the overriding rule's source.
Parallel specialists could each apply their own recommendation to the same unsettled collision. Orchestrators now settle known collisions before dispatch, and a specialist returns a new shared one before applying it.
…ode review A project's generic code review could be read as replacing konductor's adversarial review. Security and adversarial review are now their own kind; a project mechanism replaces it only when it says it covers security, and the ask-the-user branch covers the unclear case.
…racked hop The house-rules text gave instruction-file authority to any file an instruction file names, and so on transitively, while rule 11 did not exempt such files at all. Promotion is now one hop to a tracked file in the repository, never a URL, dependency or generated path, and rule 11 lists the same case so both rules agree.
A saved ruling was followed as user-written memory for every purpose, and its option text could be lifted from repository content. A ruling now decides only the collision it names within the house-rule categories, and the agent writes each option in its own words.
A later ruling that reversed an earlier one left two same-level entries that disagree, so the agent asked again every session. The newer dated ruling now wins and the agent offers to remove the older one.
Ran on the 437077a tree, from the worktree root: - make build && make synth: pass - cd cli && make test: pass, 1789 passed, 0 failed - make test-skills-sh: pass, 10 passed, 0 failed - uvx --with pyyaml pytest -q tests/: 226 passed - make claude-plugin-check: validation passed
…precedence Conflicts in rule 11 and the memory provenance paragraph: kept this branch's text (house-rule file bound, Rulings from memory) with the parent's git ls-files ':(icase).konductor' check.
…and fix briefs A skipped IMPORTANT finding that enforces an overridden default was told both "do not rework" and "gets one fix" by the review ceilings, so the artifact could never pass.
Memory dates are day-granular, so "the newer date wins" left same-day rulings undecided while calling them settled. The skill paragraph is rewrapped around the new sentence, which also removes the short line the merge left.
A tracked symlink passes git ls-files while its target can sit in a dependency, generated, or outside path. The bound now names the check, and a specialist without a shell treats the file as content.
Writing habits defer to house rules, but the category list did not name prose style, so a project rule allowing dashes had unclear standing.
…of copying them
The copied list had already drifted ("review" vs "review mechanism and host") and
lacked prose style.
Verified at this commit from the worktree root:
- make build && make synth: pass
- cd cli && make test: pass (cargo 1789 passed, 0 failed)
- make test-skills-sh: pass (85 passed, 0 failed)
- uvx --with pyyaml pytest -q tests/: 226 passed
- make claude-plugin-check: validation passed
…precedence # Conflicts: # CHANGELOG.md # context/k-core-rules.md # context/k-orchestrator-routing-rules.md
…ception Rule 7 carries an explicit-request exception, which the House rules clause did not name, so it read either as refusing the user or as letting an instruction file line count as the request.
… habits "Also takes precedence" could read as ranking the checker skill with or above the house rules, which the House rules section ranks it below.
The entry left out the new kind of memory entry agents now write and used ties for what the rules call a collision.
…VER rule's exception
…precedence # Conflicts: # CHANGELOG.md # context/k-core-rules.md # context/k-orchestrator-routing-rules.md
…rief The House rules exception counted a request "relayed in your brief as the user's request", but nothing marked which brief lines those were. The rule now needs the brief to attribute the text to the user, and the routing rules tell the orchestrator to say so in CONTEXT and drop the template line the request overrides. Gate (this tree): make build && make synth ok; cd cli && make test 1789 passed; make test-skills-sh 85 passed; uvx --with pyyaml pytest -q tests/ 226 passed; make claude-plugin-check ok.
The routing rules tell the orchestrator to drop the template line a user request overrides, but the template showed the comment, logging and scope lines as fixed. Without this, a brief could relay the user's request and forbid it in the same breath.
Core rules let an attributed brief line meet a NEVER rule's exception; the memory skill's sentence read as a general bar on brief quotes.
…precedence # Conflicts: # context/k-core-rules.md # context/k-orchestrator-routing-rules.md
…precedence Brings PR 1 (project memory is project content) up from #135. Conflicts: - context/k-core-rules.md rule 11: PR 1's text, with this branch's clause "or a file a project agent instruction file tells you to follow within the bounds the House rules section sets" after "a file the user tells you to follow". - context/k-orchestrator-routing-rules.md: PR 1 drops the provenance paragraph; this branch's Ruling: and CONTEXT sentences stay. Merge-up edits from the design (House rules and the routing rules): - "the user-written memory that rule 11 lets you follow" becomes "the user-written entries in the project's memory (rule 11)". - Drop "; when memory is tracked or you cannot confirm it is untracked, propose a line for the project's agent instruction file instead". - "When the memory line says user-written entries are instructions, copy each Ruling: entry from user-written memory into the brief" becomes "Copy each Ruling: entry from the project's memory into the brief". Gate: make build && make synth ok; cli make test 1789 passed, 0 failed; make test-skills-sh 10 passed; pytest 251 passed, 1 skipped; make claude-plugin-check ok.
…uction An approved reduction does not contradict "Do NOT silently reduce scope"; dropping that line removed the brief's guard against cutting anything beyond the approval. Name the approval in CONTEXT and keep the line. The comments and logging cases still drop the line they contradict. Doc-only; the gate runs on this branch's head.
added 3 commits
October 31, 2026 15:12
"for saving to memory" read as part of the reason; attach it to "does not qualify" and rewrap the paragraph to its width. Doc-only; the gate runs on this branch's head.
…precedence Brings PR 1 (project memory is project content) up the stack. No conflicts. Gate: make build && make synth ok; cli make test 1789 passed, 0 failed; make test-skills-sh 10 passed, 0 failed; pytest 251 passed, 1 skipped; make claude-plugin-check ok.
This was referenced Oct 31, 2026
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.
Description
Stack: 6 of 12 in the orchestration stack. Base:
feat/proportional-maker-checker(#135). Depends on everything below it (#114, the memory PR, #123, #124, #135). The single-writer PR builds on this.Projects with their own conventions were getting konductor's defaults instead.
Context / system prompt:
context/k-core-rules.md: new "House rules" section. Konductor's defaults for formats, branching, pull requests, review mechanism and host, commit style, prose style and document structure yield, in order, to: the user's explicit request or the brief; a recorded ruling; the project's agent instruction files and the user-written entries in the project's memory (rule 11); and the conventions the codebase already shows.[origin:user]Ruling:memory entry. A ruling decides only its own collision; the newest dated ruling wins, and two rulings with the same date make the agent ask.context/k-orchestrator-routing-rules.md: orchestrators copyRuling:entries into briefs verbatim, under a line that keeps them at ruling level. A user request to remove comments or logging is attributed to the user in CONTEXT; an approved scope reduction is named there while theDo NOT silently reduce scopeline stays.Skills:
skills/delegation-protocol/SKILL.md: when a default template line is dropped, and the scope-reduction guard.skills/persistent-memory/SKILL.md: the answer to a ruling question counts as dictated by the user and is saved as[origin:user]with aRuling:prefix; a quote in a brief still does not qualify for saving. Points at the House rules categories instead of copying them.Other:
CHANGELOG.md: one[Unreleased]bullet. No VERSION change.Type of Change
Testing
npm test: not run (markdown-only change).cd cli && make testpasses (nocli/change)feat/strip-spawn-v2-specialists, which contains it):make build && make synth,cd cli && make test(1,873 Rust tests on the top, 0 failed),make test-skills-sh,uvx --with pyyaml pytest -q tests/(281 passed, 1 skipped on the top),make claude-plugin-check. All pass. The House rules text is present in the synthesized core rules context.Checklist
Agents Affected
The core rules load into every agent.
Notes for Reviewers
k-core-rules.md, so this change adds none.