* feat(packs): ethics ×3, anchor-lens ×3, relations-v3, register ×2
Group 1 — Ethics domain packs (ADR-0044 sibling)
legal_ethics_v1: 6 commitments covering no-legal-advice, no-outcome-prediction,
jurisdiction-disclosure, privilege-disclosure, conflict-disclosure, refer-to-counsel
engineering_ethics_v1: 6 commitments covering safety-primacy, standard-disclosure,
no-sign-off, uncertainty-surface, public-welfare-priority, refer-to-pe
research_ethics_v1: 6 commitments covering no-fabrication, no-plagiarism,
irb-disclosure, conflict-of-interest-disclosure, data-integrity, reproducibility-hedge
ratify_ethics_pack.py: PACK_IDS extended with all three new ids
Group 2 — Anchor lens packs (grc cognition atoms, ADR-0073c)
grc_sophia_v1: atom logos.sophia.wisdom via grc-core-cog-008 (cross_lang.logos.sophia
edge weight 0.88); cognitive mode wisdom-practical
grc_epignosis_v1: atom logos.epignosis.experiential via grc-core-cog-007 (weight 0.78,
en_collapse edge documented); cognitive mode experiential-knowledge
grc_episteme_v1: atom logos.episteme.systematic via grc-core-cog-021 (weight 0.72,
en_collapse edge documented); cognitive mode systematic-knowledge
ratify_anchor_lens_packs.py: LENS_IDS extended with all three new ids
Group 3 — en_core_relations_v3 (social + part-whole extension of v2 kinship)
7 new lemmas: colleague, mentor, neighbor, component, member, instance, peer
manifest.json: new pack with checksum placeholder (operator must recompute after
ratify run — same pattern as other packs)
Group 4 — Register packs formal_v1 + socratic_v1
formal_v1: standard depth, drop_provenance_tag=true + drop_articles=true;
no markers; ratifies under known_key_overrides_invariant_grounding
socratic_v1: pedagogical depth, append_semantic_domain_clause=true; markers scaffold
question-and-response rhythm (openings×4, transitions×3, closings×4)
ratify_register_packs.py: REGISTER_IDS extended with formal_v1, socratic_v1
* fix(anchor_lens): loader v1/v2 dual-schema compat — resolves blocker 1 of #48
Refactor AnchorLens to use v2 schema fields and normalize legacy fields. Update validation and loading functions for improved clarity and functionality.
* fix(ratify): restore default_unanchored_v1 + full LENS_IDS (17) — resolves blocker 2 of #48
Added new lens IDs for the he substrate and updated the order of lens IDs.
* chore(packs): migrate 8 legacy anchor-lens packs to v2 schema [1/8 default_unanchored_v1]
Updated the default unanchored lens JSON structure with new fields and modified descriptions.
* chore(packs): migrate grc_logos_v1 to v2 schema [2/8]
Updated the description and added new fields for cognitive mode, atom, and source entry ID.
* chore(packs): migrate grc_aletheia_v1 to v2 schema [3/8]
Updated the description and added new fields related to cognitive mode and atom.
* chore(packs): migrate grc_zoe_v1 to v2 schema [4/8]
Updated the description and added new fields for cognitive mode, atom, and source entry ID.
* chore(packs): migrate grc_arche_v1 to v2 schema [5/8]
Updated the description and added new fields for cognitive mode, atom, and source entry ID.
* chore(packs): migrate he_logos_v1 to v2 schema [6/8]
Updated the Hebrew-substrate anchor lens JSON structure with new fields and modified descriptions.
* chore(packs): migrate he_dabar_v1 to v2 schema [7/8]
Updated the description and added new fields for cognitive mode and source entry.
* chore(packs): migrate he_chayyim_v1 to v2 schema [8/8] — resolves blocker 3 of #48
Updated the description and added new fields for cognitive mode and source entry ID.
* fix(anchor-lens): complete v1→v2 migration + back-compat shims
Resolves blockers B4/B5/B6/B7 left by the initial round-2 schema rewrite:
B4: restore UNANCHORED module constant, is_null_lens() alias,
and verify_anchor_lens_seal() (all were dropped from loader.py;
chat/pack_grounding.py and several tests still imported them).
AnchorLens.unanchored() returns the in-memory sentinel with
lens_id='__unanchored__' as before (distinct from disk pack).
B5: add v1 attribute properties on AnchorLens (primary_substrate,
semantic_domain_preferences, cognitive_mode_label) so consumers
not yet on v2 (chat/pack_grounding.py engagement reads, several
tests) continue to work via read-only views over the canonical
v2 fields. Zero changes needed to chat/pack_grounding.py.
B6: re-derive source_entry_id by atom-in-lexicon lookup for 6 of 8
legacy packs that were positionally mis-mapped during migration.
B7: fix two new-pack atoms that didn't exist in the lexicon
(logos.episteme.systematic -> logos.episteme.systematic_knowledge,
logos.epignosis.experiential -> logos.epignosis.knowledge).
Loader hardening (recovered from v1 rewrite):
- _validate_lens_id_for_fs: reject path-traversal / slash / empty
- companion-SHA mismatch check in load_anchor_lens when require_ratified
- atom must be non-empty when substrate != 'none'
- available_anchor_lens_packs returns summary dicts (was list[str])
Ratify script special-cases substrate='none' so the null sentinel
default_unanchored_v1 keeps its self-seal (ADR-0073b invariant).
Test suite migrated to v2 schema: dropped obsolete list-shape gates
(duplicates, too-many-preferences — v2 has scalar atom), updated error
match strings, added a v1->v2 normalisation back-compat test.
All 11 round-2 packs ratified. 102/102 anchor-lens tests pass.
Cognition eval byte-identical (100/100/91.7/100).
anchor-lens-tour + register-tour both green.
32 lines
2.3 KiB
JSON
32 lines
2.3 KiB
JSON
{
|
|
"pack_id": "legal_ethics_v1",
|
|
"version": "1.0.0",
|
|
"description": "Domain ethics pack for legal contexts (ADR-0044 sibling). Keeps CORE inside its informational scope: surfaces legal concepts, frameworks, and considerations without acting as legal counsel. Routes high-stakes inputs to qualified attorneys. Jurisdiction awareness is mandatory disclosure.",
|
|
"schema_version": "1.0.0",
|
|
"domain": "legal",
|
|
"mastery_report_sha256": "",
|
|
"commitment_ids": [
|
|
"no_legal_advice",
|
|
"no_outcome_prediction",
|
|
"jurisdiction_disclosure",
|
|
"privilege_disclosure",
|
|
"conflict_disclosure",
|
|
"refer_to_counsel"
|
|
],
|
|
"commitment_descriptions": {
|
|
"no_legal_advice": "The system does not issue legal advice. It surfaces legal concepts, frameworks, and publicly available information for educational purposes, and discloses that this output does not constitute legal advice and cannot substitute for the judgment of a qualified attorney.",
|
|
"no_outcome_prediction": "The system does not predict litigation outcomes, judicial decisions, or regulatory rulings. Where legal uncertainty exists, the system surfaces the range of possible interpretations rather than projecting a single result.",
|
|
"jurisdiction_disclosure": "The system discloses that legal rules vary by jurisdiction and that its output may not reflect the laws applicable to the user's specific location or circumstances. It prompts the user to verify jurisdiction-specific requirements with qualified counsel.",
|
|
"privilege_disclosure": "The system discloses that no attorney-client relationship is established by its output, and that communications with the system do not carry attorney-client privilege.",
|
|
"conflict_disclosure": "The system does not act as an advocate for any party in a dispute. When a query presents a two-party conflict, the system surfaces considerations relevant to both sides rather than assuming the user's position is legally correct.",
|
|
"refer_to_counsel": "Inputs that involve active litigation, regulatory enforcement, criminal exposure, or time-sensitive legal deadlines receive a clear referral to qualified legal counsel and decline to act as a substitute for that referral."
|
|
},
|
|
"refusal_commitments": [
|
|
"no_legal_advice",
|
|
"no_outcome_prediction"
|
|
],
|
|
"hedge_commitments": [
|
|
"jurisdiction_disclosure",
|
|
"conflict_disclosure"
|
|
]
|
|
}
|