Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
5064a29
feat: Initializing transmission schema
castelao Apr 13, 2026
05b3de0
feat: Initializing some properties
castelao Apr 13, 2026
3a86f6e
Defining `value`
castelao Apr 13, 2026
ba0e559
Adding some qualitative_features
castelao Apr 13, 2026
49a7c24
typo:
castelao Apr 14, 2026
6a71b53
Complete and improved required fields
castelao Apr 14, 2026
809ed60
Simplified summary request
castelao Apr 14, 2026
6910048
Defining noise
castelao Apr 14, 2026
647143d
examples of noise
castelao Apr 14, 2026
6e4bbe5
Adding instructions - general
castelao Apr 14, 2026
6238dbd
Adding decomissioning as an operational feature
castelao Apr 14, 2026
3b4e5cb
feat: Adding Maximum Height
castelao Apr 14, 2026
ba60b96
feat: Property line setback
castelao Apr 15, 2026
fd6aa4a
feat: core_principles
castelao Apr 16, 2026
9f9681d
feat: Adding setbacks' properties
castelao Apr 16, 2026
64e9845
This is incomplete, so let's call it 0.0.1
castelao Apr 16, 2026
8998449
Finishing operational and including prohibitions
castelao Apr 21, 2026
dd33372
feat: match_labels()
castelao Apr 23, 2026
b0b8ba5
feat: Load and parse labeled data
castelao Apr 23, 2026
22ea5e4
feat: find_missing_features()
castelao May 18, 2026
289066d
refact: Renaming store.py to reference.py
castelao May 19, 2026
62adc58
refact: Using 'reference' instead of 'truth'
castelao May 19, 2026
e2f9881
feat: extract_locations + find_missing_locations
castelao May 19, 2026
eb0d951
wip: CLI definition
castelao May 19, 2026
1a62872
refact: Moving load_run to core.py
castelao May 19, 2026
869bea2
refact: Moving to Click instead of Argparse
castelao May 19, 2026
bc5d88f
Initializing transmission plugin config
castelao May 26, 2026
fb78535
Updating query_templates
castelao May 26, 2026
c7a26af
Updating website_keyword
castelao May 26, 2026
bce16f7
refact: Moving back to plugin_config.yaml
castelao May 26, 2026
b08e890
Registering transmission plugin
castelao Jun 3, 2026
3d03bcf
clean:
castelao Jun 3, 2026
564e971
style:
castelao Jun 3, 2026
24235bb
style:
castelao Jun 3, 2026
762fa72
Moving QC module outside core COMPASS
castelao Jun 3, 2026
c473007
good_tech_acronyms
castelao Jun 9, 2026
d9087f6
Split context in query_templates
castelao Jun 9, 2026
5d505ed
Confirmed good_tech_phrases
castelao Jun 9, 2026
3631cc1
not_tech: transmission fluid
castelao Jun 18, 2026
e7d4bc0
Extending non-tech
castelao Jun 18, 2026
b0f5ef9
All original information to collect
castelao Jul 5, 2026
41f6cc5
Extending query_template
castelao Jul 6, 2026
4f14e34
Minimalist good_tech_keywords
castelao Jul 6, 2026
b499eaa
doc: Note on CPCN
castelao Jul 6, 2026
7b82101
Extending doc selection to multi-doc-mixed
castelao Jul 6, 2026
42865fd
feat: Adding `scope` to parsed fields
castelao Jul 15, 2026
94e9cc1
feat: Inject sentinel values if scope is defined
castelao Jul 15, 2026
864146f
Adding `power line` as suggested by Paul
castelao Jul 15, 2026
c2d18e0
Extending queries to target franchise agreements
castelao Jul 15, 2026
ceff580
Expanding keywords
castelao Jul 15, 2026
058d31b
Adding franchise as an output feature
castelao Jul 15, 2026
3010f5c
doc, style:
castelao Jul 15, 2026
40d5a74
feat: Apply sentinel if scope is used but undefined
castelao Jul 15, 2026
abe1776
Expanding non-technical words
castelao Jul 15, 2026
89eb981
test: _inject_scope_sentinels()
castelao Jul 15, 2026
08c2abc
feat: Adding property scope
castelao Jul 15, 2026
95e7fbd
feat: Adjust value definition to use scope
castelao Jul 15, 2026
18b78e2
feat: Franchise definition
castelao Jul 15, 2026
9cd2e30
feat: Examples of extracted scope
castelao Jul 15, 2026
56151f4
style:
castelao Jul 16, 2026
44e2481
Adding explicit CPCN as keyword
castelao Jul 16, 2026
17aff31
feat: Missing maximum height and electric field
castelao Jul 16, 2026
1474d96
Split maximum height into tower and structures
castelao Jul 16, 2026
dbbf899
Defining scope
castelao Jul 16, 2026
19d785e
Transitioning to zone restriction features
castelao Jul 16, 2026
1415d4e
List of qualitative features
castelao Jul 17, 2026
43801a3
Updating description of units
castelao Jul 17, 2026
275a425
Updating value description
castelao Jul 17, 2026
ba45816
Refactoring restricted use and adding exclusions
castelao Jul 17, 2026
5185305
refact: Migrating from scope to subarea
castelao Jul 17, 2026
37c1745
typo:
castelao Jul 18, 2026
bc6c600
fix: Wrong function name from renaming
castelao Jul 18, 2026
151d192
fix: Forgot to update name
castelao Jul 18, 2026
7a5402d
refact: Adding 'distance' to setback features
castelao Jul 18, 2026
420ca38
refact: Renaming scope to subarea
castelao Jul 18, 2026
5eb4639
cfg: MVP schema as 0.1.0
castelao Jul 19, 2026
0a1fc7c
typo:
castelao Jul 23, 2026
d5d2875
Split jurisdiction from query context
castelao Jul 23, 2026
4c76b6d
refact: Aligning with other techs
castelao Jul 23, 2026
e62a174
Modified extraction_system_prompt to include franchise
castelao Jul 23, 2026
8fb6ba0
Using subarea instead of scope for geographical sub-division
castelao Jul 23, 2026
2ba8ef9
refact: Convert _apply_subarea_defaults to staticmethod (ruff no-self…
castelao Jul 23, 2026
16ed369
fix: Another scope instead of subarea left behind
castelao Jul 27, 2026
2ab53ad
Copying query idea from GHP tech
castelao Jul 27, 2026
48d2d8b
Adding keywords for franchise
castelao Jul 27, 2026
249059c
doc: Explicit "high-voltage"
castelao Jul 27, 2026
7ad3c2d
clean: Unused old stuff left behind
castelao Jul 27, 2026
fe832b5
style:
castelao Jul 28, 2026
c2bb4aa
feat: Adding scope_context to core_principles
castelao Jul 30, 2026
7a0aa4c
schema: clarify structures vs residential building setback classifica…
castelao Jul 30, 2026
5f25434
schema: broaden bond feature to subdivision-scale utility bonds
castelao Jul 30, 2026
db72e6d
schema: add $scope key for per-chunk admission gate
castelao Jul 30, 2026
dbe1e76
refact: Single & double quotes on queries
castelao Jul 30, 2026
350f05c
fix: drop phrase-lock on site:-scoped queries
castelao Jul 31, 2026
693dff7
refact: Extending keywords
castelao Aug 1, 2026
1d622a1
refact: Reframe transmission extraction prompt for franchise encompas…
castelao Aug 2, 2026
47114ad
refact: Broaden decommissioning definition for franchise removal
castelao Aug 2, 2026
c010826
feat: Add traffic disruption definition
castelao Aug 2, 2026
52514e9
refact: Broaden permit definition for right-of-way approvals
castelao Aug 2, 2026
01d64c3
refact: Collect and extract codified electric-franchise lists
castelao Aug 3, 2026
327168a
refact: Renaming zone to district use restriction
castelao Aug 8, 2026
24e3cab
feat: Add aggregated boolean field to transmission extraction schema
castelao Aug 8, 2026
1b76d09
refactor: Remove subarea plumbing from one-shot plugin
castelao Aug 8, 2026
b3a3347
refact: Redefining district use restriction
castelao Aug 8, 2026
d4590a5
refact: Use 'text' units for qualitative transmission features
castelao Aug 8, 2026
fd34acf
clean: Removing outdated maximum-height definition
castelao Aug 8, 2026
90561fb
feat: Voltage threshold definition
castelao Aug 8, 2026
e8c455a
Updating version
castelao Aug 8, 2026
cff883d
clean: Removing deprecated subarea guidance
castelao Aug 8, 2026
1dfc401
refact: Aggregating excluded lands
castelao Aug 10, 2026
38f2522
fix: json format
castelao Aug 11, 2026
0d3aae3
style:
castelao Aug 12, 2026
13db343
feat: Adding voltage threshold to heuristics
castelao Aug 12, 2026
ce69889
clean: It's not clear the benefit of that query
castelao Aug 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions compass/extraction/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@
from .rmp import COMPASSGeoRMPExtractor
from .small_wind import COMPASSSmallWindExtractor
from .solar import COMPASSSolarExtractor
from .transmission import COMPASSTransmissionExtractor
from .water import TexasWaterRightsExtractor
from .wind import COMPASSWindExtractor
12 changes: 12 additions & 0 deletions compass/extraction/transmission/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""COMPASS high-voltage transmission extraction plugin"""

import importlib.resources

from compass.plugin import create_schema_based_one_shot_extraction_plugin


COMPASSTransmissionExtractor = create_schema_based_one_shot_extraction_plugin(
importlib.resources.files("compass.extraction.transmission")
/ "plugin_config.yaml",
tech="transmission",
)
173 changes: 173 additions & 0 deletions compass/extraction/transmission/plugin_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
schema: ./transmission_schema.json5

data_type_short_desc: high-voltage transmission lines ordinance

doc_selection_method: "multi doc mixed"

query_templates:
- 'site:municode.com {jurisdiction} electrical transmission line'
- 'site:codelibrary.amlegal.com {jurisdiction} electrical transmission line'
- '"{jurisdiction}" zoning code electric transmission line setback'
- '"{jurisdiction}" high voltage transmission line ordinance'
- '"{jurisdiction}" overhead electric utility line zoning'
- '"{jurisdiction}" power line'
- 'filetype:pdf "{jurisdiction}" electric transmission line ordinance'
- '"{jurisdiction}" electric utility franchise ordinance'
- '"{jurisdiction}" code of ordinances electric franchise'
- 'filetype:pdf "{jurisdiction}" electric franchise agreement'

website_keywords:
pdf: 92160
transmission: 46080
ordinance: 23040
zoning: 11520
utility: 5760
electric: 5760
franchise: 5760
code: 2880
right-of-way: 1440
easement: 1440
siting: 1440
franchise agreement: 1440
overhead: 720
substation: 720
permit: 720
land use: 720
planning: 720
grantee: 720
municipal: 360
county: 360
code of ordinances: 360
ordinance code: 360
land use code: 360
use table: 360
conditional use permit: 180
special use permit: 180
chapter: 180
article: 180
title: 180
statute: 180
administrative code: 180
government: 180

heuristic_keywords:
good_tech_acronyms:
- "kv"
- "hvdc"
- "ehv"
- "uhv"
- "cpcn" # Certificate of Public Convenience and Necessity
- "hv"
- "kva"
good_tech_keywords:
- "transmission"
- "kilovolt"
- "powerline"
- "franchise"
- "grantee"
- "substation"
- "pole"
- "overhead"
- "right-of-way"
- "right of way"
- "rights-of-way"
- "utility line"
good_tech_phrases:
- "certificate of public convenience and necessity"
- "high voltage"
- "extra high voltage"
- "bulk electric"
- "bulk transmission"
- "electric franchise"
- "electric utility franchise"
- "electric transmission"
- "69 kv"
- "115 kv"
- "138 kv"
- "161 kv"
- "230 kv"
- "345 kv"
- "500 kv"
- "765 kv"
- "transmission line"
- "transmission pole"
- "electric line"
- "utility easement"
- "transmission or distribution"
- "electric transmission facilities"
- "overhead line"
- "overhead electric"
- "aerial line"
- "high-voltage line"
- "overhead electric line"
- "overhead transmission"
- "overhead power line"
- "transmission tower"
- "transmission facility"
- "utility transmission"
- "transmission corridor"
- "transmission right-of-way"
- "transmission right of way"
- "transmission easement"
- "transmission structure"
- "transmission infrastructure"
- "electric power line"
- "power line"
- "electric utility"
- "voltage threshold"
not_tech_words:
- "local distribution"
- "transmission fluid"
- "auto transmission"
- "automatic transmission"
- "communication transmission"
- "manual transmission"
- "data transmission"
- "radio transmission"
- "wireless transmission"
- "telephone line"
- "disease transmission"
- "virus transmission"
- "heat transmission"
- "natural gas transmission"
- "gas transmission"
- "oil transmission"

collection_prompts: true

extraction_system_prompt: |-
You are a legal scholar extracting structured data from
ordinance documents. A document may contain two kinds of
content, which can appear separately or together in the same
document:
(1) high-voltage electric transmission line requirements, and
(2) an electric utility franchise that grants a named company
the right to operate electric infrastructure in this
jurisdiction.

For transmission-line content (1), be focused and literal:
extract only enacted, explicit, in-scope requirements that
apply to high-voltage (typically 69 kV or higher) electric
transmission lines, towers, poles, substations, and their
rights-of-way. Do not extract requirements that apply only to
local electric distribution, telecommunications, gas or oil
pipelines, or low-voltage service lines.

For franchise content (2), the "franchise" feature is the
primary output: name every explicitly named grantee company
using its verbatim legal name and quote the granting clause.
Do not extract non-electric franchises (water, gas, cable,
telecom). If the same document also contains transmission-line
content (1), extract those features as well under the rules
above, including provisions that apply to the grantee's
electric infrastructure generally and, by encompassment, would
apply to its high-voltage transmission lines.

Be thorough and complete: review all relevant sections,
including tables and lists, so no explicitly stated in-scope
feature is missed. Before finalizing, perform a feature-coverage
check against the schema and ensure each explicitly supported
feature is captured exactly once.
Pay extra attention to any descriptions, instructions, examples,
and definitions in the schema, and follow all schema
instructions carefully.
Loading
Loading