Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
284423f
feat: Initializing transmission schema
castelao Apr 13, 2026
42b9f71
feat: Initializing some properties
castelao Apr 13, 2026
99c2923
Defining `value`
castelao Apr 13, 2026
1ca43a2
Adding some qualitative_features
castelao Apr 13, 2026
a7ab92b
typo:
castelao Apr 14, 2026
cad9214
Complete and improved required fields
castelao Apr 14, 2026
d3aa712
Simplified summary request
castelao Apr 14, 2026
84554c5
Defining noise
castelao Apr 14, 2026
b4bb8a3
examples of noise
castelao Apr 14, 2026
f7ee50b
Adding instructions - general
castelao Apr 14, 2026
af96e8f
Adding decomissioning as an operational feature
castelao Apr 14, 2026
85f688c
feat: Adding Maximum Height
castelao Apr 14, 2026
eebbb05
feat: Property line setback
castelao Apr 15, 2026
eacfef9
feat: core_principles
castelao Apr 16, 2026
2787e81
feat: Adding setbacks' properties
castelao Apr 16, 2026
98f049f
This is incomplete, so let's call it 0.0.1
castelao Apr 16, 2026
4b88ddd
Finishing operational and including prohibitions
castelao Apr 21, 2026
9c34758
feat: match_labels()
castelao Apr 23, 2026
ed5a5f9
feat: Load and parse labeled data
castelao Apr 23, 2026
412b8b3
feat: find_missing_features()
castelao May 18, 2026
69b1f9f
refact: Renaming store.py to reference.py
castelao May 19, 2026
469335e
refact: Using 'reference' instead of 'truth'
castelao May 19, 2026
632589d
feat: extract_locations + find_missing_locations
castelao May 19, 2026
737503c
wip: CLI definition
castelao May 19, 2026
6fd7efd
refact: Moving load_run to core.py
castelao May 19, 2026
4fcf2f9
refact: Moving to Click instead of Argparse
castelao May 19, 2026
0a22ccd
Initializing transmission plugin config
castelao May 26, 2026
5dd91ae
Updating query_templates
castelao May 26, 2026
9bafa01
Updating website_keyword
castelao May 26, 2026
fbf158e
refact: Moving back to plugin_config.yaml
castelao May 26, 2026
1162995
Registering transmission plugin
castelao Jun 3, 2026
ab85770
clean:
castelao Jun 3, 2026
e755435
style:
castelao Jun 3, 2026
d5396e2
style:
castelao Jun 3, 2026
e062329
Moving QC module outside core COMPASS
castelao Jun 3, 2026
6cf1025
good_tech_acronyms
castelao Jun 9, 2026
b234b7f
Split context in query_templates
castelao Jun 9, 2026
6f9883d
Confirmed good_tech_phrases
castelao Jun 9, 2026
6856df5
not_tech: transmission fluid
castelao Jun 18, 2026
14b68c8
Extending non-tech
castelao Jun 18, 2026
b7cf358
All original information to collect
castelao Jul 5, 2026
1a11efe
Extending query_template
castelao Jul 6, 2026
329114a
Minimalist good_tech_keywords
castelao Jul 6, 2026
a773be9
doc: Note on CPCN
castelao Jul 6, 2026
a208077
Extending doc selection to multi-doc-mixed
castelao Jul 6, 2026
789d0b8
feat: Adding `scope` to parsed fields
castelao Jul 15, 2026
55878bf
feat: Inject sentinel values if scope is defined
castelao Jul 15, 2026
b848163
Adding `power line` as suggested by Paul
castelao Jul 15, 2026
65e76f1
Extending queries to target franchise agreements
castelao Jul 15, 2026
10430ac
Expanding keywords
castelao Jul 15, 2026
2529398
Adding franchise as an output feature
castelao Jul 15, 2026
2b8f7d1
doc, style:
castelao Jul 15, 2026
ba2c62b
feat: Apply sentinel if scope is used but undefined
castelao Jul 15, 2026
9dc637d
Expanding non-technical words
castelao Jul 15, 2026
43266a1
test: _inject_scope_sentinels()
castelao Jul 15, 2026
ff3a9d0
feat: Adding property scope
castelao Jul 15, 2026
11ca1fb
feat: Adjust value definition to use scope
castelao Jul 15, 2026
b04e3a8
feat: Franchise definition
castelao Jul 15, 2026
645364b
feat: Examples of extracted scope
castelao Jul 15, 2026
96379b4
style:
castelao Jul 16, 2026
96f8872
Adding explicit CPCN as keyword
castelao Jul 16, 2026
dc37623
feat: Missing maximum height and electric field
castelao Jul 16, 2026
77a4c3b
Split maximum height into tower and structures
castelao Jul 16, 2026
9c8fc52
Defining scope
castelao Jul 16, 2026
c3c1ba1
Transitioning to zone restriction features
castelao Jul 16, 2026
e2cd06d
List of qualitative features
castelao Jul 17, 2026
99eb965
Updating description of units
castelao Jul 17, 2026
9c3be38
Updating value description
castelao Jul 17, 2026
a176ba5
Refactoring restricted use and adding exclusions
castelao Jul 17, 2026
06bafa8
refact: Migrating from scope to subarea
castelao Jul 17, 2026
a1a5e38
typo:
castelao Jul 18, 2026
0487cec
fix: Wrong function name from renaming
castelao Jul 18, 2026
e7085f2
fix: Forgot to update name
castelao Jul 18, 2026
da84cb6
refact: Adding 'distance' to setback features
castelao Jul 18, 2026
6903d45
refact: Renaming scope to subarea
castelao Jul 18, 2026
5cd2a60
cfg: MVP schema as 0.1.0
castelao Jul 19, 2026
9500d79
typo:
castelao Jul 23, 2026
b8e81ab
Split jurisdiction from query context
castelao Jul 23, 2026
d17b428
refact: Aligning with other techs
castelao Jul 23, 2026
4a63dd4
Modified extraction_system_prompt to include franchise
castelao Jul 23, 2026
262c9c0
Using subarea instead of scope for geographical sub-division
castelao Jul 23, 2026
b21c112
refact: Convert _apply_subarea_defaults to staticmethod (ruff no-self…
castelao Jul 23, 2026
f64a275
fix: Another scope instead of subarea left behind
castelao Jul 27, 2026
ce21a16
Copying query idea from GHP tech
castelao Jul 27, 2026
849d339
Adding keywords for franchise
castelao Jul 27, 2026
9ba9b98
doc: Explicit "high-voltage"
castelao Jul 27, 2026
2f7f9b9
clean: Unused old stuff left behind
castelao Jul 27, 2026
9ac6e26
style:
castelao Jul 28, 2026
3c37d8c
feat: Adding scope_context to core_principles
castelao Jul 30, 2026
5189bd4
schema: clarify structures vs residential building setback classifica…
castelao Jul 30, 2026
86a8df6
schema: broaden bond feature to subdivision-scale utility bonds
castelao Jul 30, 2026
408b955
schema: add $scope key for per-chunk admission gate
castelao Jul 30, 2026
a6adc12
refact: Single & double quotes on queries
castelao Jul 30, 2026
2df2ab5
fix: drop phrase-lock on site:-scoped queries
castelao Jul 31, 2026
9e0b52b
refact: Extending keywords
castelao Aug 1, 2026
0d9aa08
refact: Reframe transmission extraction prompt for franchise encompas…
castelao Aug 2, 2026
d644e18
refact: Broaden decommissioning definition for franchise removal
castelao Aug 2, 2026
d8c5762
feat: Add traffic disruption definition
castelao Aug 2, 2026
a3c0ea6
refact: Broaden permit definition for right-of-way approvals
castelao Aug 2, 2026
a1a09de
refact: Collect and extract codified electric-franchise lists
castelao Aug 3, 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 @@ -15,5 +15,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'
- 'Where can I find the legal text for electric transmission line zoning ordinances in "{jurisdiction}"?'
- '"{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"
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