feat(arch): arch_plan_from_spec, three arch_* critique focuses, the arch pack, lean 64 and the counts
The three track-F branches are merged; this is the integration that makes the
twelve SECTION 25 tools one surface.
- engineering/arch/spec.py: a whole plan from one document - walls with their
openings, stairs, room labels measured off the walls just drawn, the
exterior chains and the schedules - inside one transaction. Everything the
model, the wall engine or the stair symbol can refuse is refused before the
transaction opens, by path; a room point in no closed face rolls it back,
and so does a cancelled request, under the anyio shield of pid/spec.py.
EXAMPLE_SPEC's rooms measure 4825 x 5750 and 3825 x 5750 - the net floor,
computed by hand in the tests.
- engineering/arch/critique.py: arch_room_unlabelled, arch_wall_gap (50 mm,
one issue per pair of walls, measured to the wall body so an L corner and a
T stem both read as joined) and arch_opening_clash. One index per critique
run; a drawing without an ACADMCP_ARCH record yields nothing. Each focus
has a positive and a negative fixture.
- TOOL_PACK_NAMES gains "arch" (the twelve SECTION 25 tools); lean gains
arch_wall, arch_opening, arch_room and arch_plan_from_spec and reaches 64;
the arch tag ranks after mech, so SECTION 25 files as one `architecture`
group - 241 tools in 26 groups.
- Six golden tuning cases, two of them Turkish, the arch_plan_from_spec alias
record, the shared-command allowlist reconciled with what the merged records
claim, the inventory regenerated, the registry snapshot retaken, and the
README figures taken from check_doc_numbers rather than typed.
- Two more Turkish golden cases close the reconciliation's alias gaps
("vaziyet planı çiz" -> arch_plan_from_spec, "oda alanlarını hesapla" ->
arch_rooms_detect); the arch records carry vaziyet / alan / oda / kat planı
in diacritic and ASCII-folded spellings, because the search tokenizer splits
on a non-ASCII letter. BOUNDARY and AREA stay with boundary_trace and
analysis_measure_entity on purpose, recorded in the arch alias comment.
Tuning top-1 73/84, top-3 83/84; holdout top-3 15/15.
- tests/test_token_suite.py: TOOL_PACKS=core,mech now drops the arch pack
too (measured 193 = 236 - 9 - 22 - 12).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
ad5a32a34a
commit
6e004cc658
+56
-2
@@ -62,7 +62,8 @@ class ToolAliases:
|
||||
# splits read and write.
|
||||
# ERASE, INSERT -- the server genuinely exposes one operation through more
|
||||
# than one tool (single vs. batch delete; block insert vs. block-reference
|
||||
# creation vs. the P&ID catalogue insert), so each is a correct destination.
|
||||
# creation vs. the P&ID, standard-parts and furniture / sanitary
|
||||
# catalogue inserts), so each is a correct destination.
|
||||
# QSELECT -- AutoCAD's Quick Select dialog is both "filter by properties"
|
||||
# (selection_filter) and "find things like this one"
|
||||
# (entity_select_smart); a drafter typing it could mean either.
|
||||
@@ -508,6 +509,7 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
|
||||
"what is wrong with this drawing",
|
||||
"drafting mistakes",
|
||||
"check before finalising",
|
||||
"anything wrong before i finish",
|
||||
),
|
||||
),
|
||||
"drawing_deliver": ToolAliases(
|
||||
@@ -2240,6 +2242,8 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
|
||||
"exterior wall",
|
||||
"partition wall",
|
||||
"floor plan walls",
|
||||
"walls of a floor plan",
|
||||
"draw the walls",
|
||||
"clean wall corners",
|
||||
"t junction of walls",
|
||||
"wall poche",
|
||||
@@ -2309,7 +2313,12 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
|
||||
# AREA and BOUNDARY stay with analysis_measure_entity and boundary_trace:
|
||||
# on a plain AutoCAD seat a drafter typing them means those tools, and
|
||||
# sharing them would move the golden BPOLY / area cases. The room
|
||||
# vocabulary below reaches these two without either command.
|
||||
# vocabulary below reaches these two without either command. Task 9's
|
||||
# reconciliation of the merged records kept that decision on purpose:
|
||||
# neither command goes into SHARED_ACAD_COMMANDS and neither moves to an
|
||||
# arch_* record. The Turkish room vocabulary ("oda", "alan", "oda alanları")
|
||||
# carries both spellings, diacritic and ASCII-folded, because the search
|
||||
# tokenizer splits on a non-ASCII letter instead of folding it.
|
||||
"arch_room": ToolAliases(
|
||||
acad=(),
|
||||
synonyms=(
|
||||
@@ -2318,8 +2327,12 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
|
||||
"room name and number",
|
||||
"net floor area",
|
||||
"measured room area",
|
||||
"oda",
|
||||
"oda etiketi",
|
||||
"oda alanı",
|
||||
"oda alani",
|
||||
"alan",
|
||||
"mahal adı",
|
||||
"mahal adi",
|
||||
),
|
||||
),
|
||||
@@ -2331,7 +2344,18 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
|
||||
"rooms of a floor plan",
|
||||
"room areas of this plan",
|
||||
"read rooms from lines",
|
||||
"oda",
|
||||
"odalar",
|
||||
"odaları bul",
|
||||
"odalari bul",
|
||||
"alan",
|
||||
"oda alanları",
|
||||
"oda alanlari",
|
||||
"oda alanlarını hesapla",
|
||||
"oda alanlarini hesapla",
|
||||
"alan hesabı",
|
||||
"alan hesabi",
|
||||
"kat planı alanları",
|
||||
"kat plani alanlari",
|
||||
),
|
||||
),
|
||||
@@ -2342,7 +2366,14 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
|
||||
"window schedule",
|
||||
"room schedule",
|
||||
"opening schedule",
|
||||
"kapı çizelgesi",
|
||||
"kapi cizelgesi",
|
||||
"kapı listesi",
|
||||
"kapi listesi",
|
||||
"pencere listesi",
|
||||
"kapı pencere listesi",
|
||||
"kapi pencere listesi",
|
||||
"pencere çizelgesi",
|
||||
"pencere cizelgesi",
|
||||
"mahal listesi",
|
||||
),
|
||||
@@ -2411,6 +2442,29 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
|
||||
"gorunus isareti",
|
||||
),
|
||||
),
|
||||
# ── Architecture: the whole plan (SECTION 25, track F integration) ──────
|
||||
"arch_plan_from_spec": ToolAliases(
|
||||
acad=(),
|
||||
synonyms=(
|
||||
"draw a floor plan",
|
||||
"whole floor plan from a spec",
|
||||
"plan with walls doors and windows",
|
||||
"draw a house plan",
|
||||
"apartment plan",
|
||||
"two room plan",
|
||||
"architectural plan in one go",
|
||||
"kat planı",
|
||||
"kat plani",
|
||||
"kat planı çiz",
|
||||
"kat plani ciz",
|
||||
"vaziyet",
|
||||
"vaziyet planı",
|
||||
"vaziyet plani",
|
||||
"vaziyet planı çiz",
|
||||
"vaziyet plani ciz",
|
||||
"mimari plan",
|
||||
),
|
||||
),
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user