Teach leoclean external doctrine framing (#67)
Some checks are pending
CI / lint-and-test (push) Waiting to run

This commit is contained in:
twentyOne2x 2026-07-09 08:43:01 +02:00 committed by GitHub
parent 93c480ea3c
commit 4a035d8727
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 60 additions and 0 deletions

View file

@ -82,6 +82,30 @@ Use this bridge before answering when the user asks:
- how to approve/edit/retire/supersede a claim; - how to approve/edit/retire/supersede a claim;
- what the schema-backed soul/context says about roles, peers, blindspots, strategy, rules, or reasoning tools. - what the schema-backed soul/context says about roles, peers, blindspots, strategy, rules, or reasoning tools.
## External Doctrine Contributions
When asked to help with another project's declaration, constitution, doctrine,
manifesto, GitHub issue, or PR, do not export Teleo doctrine as if it is the
target project's own position.
Use the target project's native language first. If the external text says
phrases like `no single voice can own understanding`, `purpose precedes
capability`, or another local principle, treat those as the wedge. Frame Leo's
contribution as:
```text
This extends your own principle <X> into <specific operational question>.
```
Prefer issue-before-PR unless the operator explicitly authorizes a PR. The
issue should ask a concrete question, identify the gap, and invite the target
community to decide whether they want draft language. Link Teleo analysis only
as one reference, not as controlling doctrine.
Consent is action-specific. Leo may draft, critique, and propose language in
chat. Leo should not sign, post, submit, open an issue/PR, or speak for Teleo
publicly without explicit operator authorization for that exact public action.
## Memory vs KB Rule ## Memory vs KB Rule
Do not treat runtime memory as canonical truth. Do not treat runtime memory as canonical truth.

View file

@ -90,6 +90,30 @@ Next admin action: approve/apply the proposal, request edits, or create the miss
Do not call an approved proposal "implemented" until canonical `public.*` rows Do not call an approved proposal "implemented" until canonical `public.*` rows
and edges show the applied state. and edges show the applied state.
## External Doctrine Contributions
When asked to help with another project's declaration, constitution, doctrine,
manifesto, GitHub issue, or PR, do not export Teleo doctrine as if it is the
target project's own position.
Use the target project's native language first. If the external text says
phrases like `no single voice can own understanding`, `purpose precedes
capability`, or another local principle, treat those as the wedge. Frame Leo's
contribution as:
```text
This extends your own principle <X> into <specific operational question>.
```
Prefer issue-before-PR unless the operator explicitly authorizes a PR. The
issue should ask a concrete question, identify the gap, and invite the target
community to decide whether they want draft language. Link Teleo analysis only
as one reference, not as controlling doctrine.
Consent is action-specific. Leo may draft, critique, and propose language in
chat. Leo should not sign, post, submit, open an issue/PR, or speak for Teleo
publicly without explicit operator authorization for that exact public action.
## Memory vs KB Rule ## Memory vs KB Rule
Do not treat runtime memory as canonical truth. Do not treat runtime memory as canonical truth.

View file

@ -43,6 +43,18 @@ def test_gcp_kb_skill_keeps_claim_links_and_backtick_rendering() -> None:
assert "wrap claim IDs, proposal IDs" in text assert "wrap claim IDs, proposal IDs" in text
def test_leoclean_kb_skills_anchor_external_doctrine_in_target_project_language() -> None:
for surface in ("vps", "gcp"):
text = (SKILL_ROOT / surface / "teleo-kb-bridge" / "SKILL.md").read_text()
assert "External Doctrine Contributions" in text
assert "Use the target project's native language first" in text
assert "no single voice can own understanding" in text
assert "purpose precedes" in text
assert "Prefer issue-before-PR" in text
assert "Consent is action-specific" in text
def test_vps_live_telegram_skill_uses_systemd_for_gateway_liveness() -> None: def test_vps_live_telegram_skill_uses_systemd_for_gateway_liveness() -> None:
text = (SKILL_ROOT / "vps" / "live-leo-telegram" / "SKILL.md").read_text() text = (SKILL_ROOT / "vps" / "live-leo-telegram" / "SKILL.md").read_text()