Choose the default shared shell or add the pane jump surface.
Nav mode
Tag Studio V2 Draft
Metadata control plane for registry, scraper, and Listings
This draft keeps every live Tag Studio owner surface intact while adding a stronger overview deck, a direct domain JSON workbench, and a clearer metadata flow model for product configuration.
Tags
--
Canonical registry tags available to every downstream consumer.
Groups
--
Reusable bundles that drive rankings, semantics, and display logic.
Domains
--
Configured families and scoped domains used by Tag Studio and scraper flows.
Ranking Rules
--
Canonical ranking rules currently published in the live config domain.
Listings Table Display
--
Canonical display rows actively shaping the Magnetar Console Listings table.
Registry Guide
Domains
Domains answer where does this tag live. A top-level domain like
rankings stands on its own. A dotted domain like
locations.city or blocklists.url_path_exclude_patterns uses the
text before the dot as the domain family and the text after the dot as the
narrower slice inside that family. Tags can belong to multiple domains.
Groups
Groups answer what named bundle is this tag part of. A group is a
reusable named set of tags, and it may also contain other groups. Tags can
belong to multiple groups. Rankings like 5.0-ST and
5.0-MAS are groups with ranking meaning.
Bulk Edit Registry Rows
Update one canonical column path across multiple selected Tag Registry or Groups Registry rows.
Preview runs through the existing bulk-preview contract first so the affected rows are visible before apply.
No registry selected yet.
Choose one or more selected rows from Tag Registry or Groups Registry.
Suggested paths update by pane, but you can still enter another canonical bulk-edit path when needed.
Enter plain text exactly as it should be written to the selected column path.
Select rows in Tag Registry or Groups Registry, then open Bulk Edit to preview/apply one canonical column-path update.
Preview
Preview changes to inspect affected rows before applying.
No preview loaded yet.
Tags Registry
Tag Registry domain edits validate against the live Domain Registry before Save Changes.
Clean
Rows: 0 | Visible: 0 | Selected: 0 | Dirty: 0
Term
Enabled
Domain Family
Domain Sub-family
Domains
Groups
Actions
No registry rows loaded
Groups
Auto Groups
Derived from Tag Registry Domains. Auto-added when a domain has more than one live tag entry.
Loading auto groups derived from Tag Registry Domains...
Clean
Rows: 0 | Visible: 0 | Selected: 0 | Dirty: 0
Name
Exclusion
Rank tier
Rank dir
Notes
Members
Actions
No registry rows loaded
Rankings
Manage canonical filter rules for Rankings + Flagged behaviors using deterministic
include/exclude logic. This surface owns the rankings domain directly and
now authors include/exclude rules from live Tag Registry selector rows while preserving the
same canonical term payload that current Listings and scraper consumers already use.
Listings and extractor consumers read this canonical ruleset instead of a shadow mirror.
Shared version historyGovernance view for the canonical rankings Tag Config domain.
Loading rankings...
Actions
Loading rankings...
History
History not loaded yet.
Add Ranking Rule
Primary form-first editor. Filter by Tag Registry domain, then add live Tag Registry terms here; the saved ranking still writes the same canonical term list into rankings.tag_groups[].filters.
Advanced term paste (secondary)
Paste comma or newline separated required tags only when you need bulk recovery or import. Use the button below to push pasted text back into the primary selector rows.
Primary form-first editor. Filter by Tag Registry domain, then add live Tag Registry terms here; any matching tag still writes into canonical rankings.tag_groups[].not_filters.
Advanced term paste (secondary)
Paste comma or newline separated blocked tags only for bulk recovery or import. Use the button below to push pasted text back into the primary selector rows.
Loading live Tag Registry selector catalog...
Rule Preview
No rule conditions defined
Domain Family + Sub-family Source of Truth
Domain Registry
Source-of-truth owner surface for canonical Domain Family and Domain Sub-family rows.
Tags then consume these values through the Domain dropdowns in the Tag editor.
Waiting for domain source data...
Live Domain Dependency Wireframe
Click any family or sub-family row to inspect what that domain provides and which surfaces consume it.
Use Edit Family + Consumers or Edit Sub-family + Consumers to change the selectable consumer dropdown.
Select a domain row to inspect the live flow.
Select a domain row to inspect the live flow.
Domain Families
Controls family-level naming and metadata (owner/consumers/description).
Domain Sub-families
Controls dotted child rows (for example locations.city) consumed by Tag dropdowns.
Listings Structure
Configure the Listings-only structure that sits beside Rankings. Use the Rankings surface above for rule ownership.
The retired sidebar-group config is no longer part of the live owner contract.
This surface now owns only attribute_display_map. The live Listings contract below is read-only and exists so
Tag Studio shows the real effective column/domain wiring instead of a misleading empty owner surface.
Live Listings Contract
Read-only transparency surface showing how Listings currently resolves effective table columns and which canonical
domain owner inputs still drive runtime behavior such as rankings, services, locations, and blocklists.
Loading live Listings contract...
Live Column ↔ Metadata Matrix
Left side is the visible Listings or Rankings-facing column. Right side is the live Scraper, Tag Registry, or People Manager metadata owner that currently feeds it. Examples: Posted maps to Scraper ScanDate/Time (with legacy post_date fallback) and x.Services maps to Tag Registry services.x_services. This card refreshes when canonical domain owner config changes.
Effective Listings Columns
Current live column contract after registry-backed column rows and canonical Listings Table Display entries are applied.
Listings Domain Owner Inputs
Domain owner inputs are canonical domains that still shape Listings runtime behavior, filters, tagging, flagging, or labels even when they are not direct table columns. The map below shows the concrete components that use each domain.
Listings Table Display (attribute_display_map)
Maps extracted attribute fields into Magnetar Console > Listings table columns, labels, positions, and formats. This is the display contract for the Listings page, not the scraper queue.
Shared version historyGovernance view for scraper.attribute_display_map.
Draft Mapping Row
Primary form-first add path for Listings Table Display. Existing rows remain inline editable below, and save is blocked when field paths are blank or duplicated.
Extracted field
Display label
Position
Format
Grid
Table
0 mapping row(s)
Loading Listings Table Display mappings...
Unsaved changes
Tag Studio Domain Owner Surfaces
Listings publication map
Post Normalization -> Domain Keyword Match -> Listings Publish
The scraper extracts all post data first. A domain-scoped Tag Registry keyword/tag match then classifies the post and publishes the matched domain output into the selected Listings column. Every baseline Listings column is represented below.
Listings column
Scraper extracted post field
Tag Registry domain
Match / inclusion tag
Publish to Listings column
Status
Loading persisted mappings...
12-family transition map
Tag Studio Domain Ownership Matrix
Tag Registry is the target owner path for every Scrape Admin family. The SMTS story packet is already complete; the matrix below now shows current runtime owner state only: which families are finalized in Tag Studio, which are still adapter-backed today, and which remain compatibility residue.
Family
Canonical owner today
Target registry domain
Status
Migration note
Blocklists / Negation / Flags
Tag Registry `blocklists`
blocklists
Finalized in Tag Studio
Finalized: canonical blocklists, negation, and flags now live in Tag Studio; keep Scrape Admin as a consumer or launcher only.
Ranking / Classification Keywords
Tag Registry `rankings`
rankings
Finalized in Tag Studio
Finalized: the live Tag Studio rankings surface is already the canonical editor for classification keywords and ranking semantics.
Services / XServices / Transport
Tag Registry `services`
services
Finalized in Tag Studio
Finalized: canonical services, x-services, and transport vocabularies are already registry-backed in Tag Studio today.
Locations / Towns / Aliases
Tag Registry `locations`
locations
Finalized in Tag Studio
Live location vocabulary editing already belongs to Tag Studio.
Quick Filters
Tag Registry `quick_filters`
quick_filters
Finalized in Tag Studio
Listings capture remains consumer-side only; canonical saved presets already live in Tag Studio.
Price Types
Tag Registry `price_types`
price_types
Finalized in Tag Studio
Registry-backed price taxonomy is already the live owner path.
Social Filters
Tag Registry `social_filter`
social_filter
Finalized in Tag Studio
Canonical social filter storage and the Tag Studio owner/editor surface are now landed; the older IA split is retired.
Sites Registry
ScraperConfigStore['sites']
scraper.sites
Adapter-backed today
Canonical registry document plus the SMTS-6 sites bridge are already landed; runtime still flows through a compatibility adapter today.
Site Scan Arguments
ScanRuntimeStore['scan_args'] legacy alias
scraper.scan_args
Adapter-backed today
Canonical owner surface is now named site_scan_args; legacy scan_args storage and routes remain as compatibility aliases during runtime adapter cutover.
Scan Pipeline
ScanRuntimeStore['scan_pipeline']
scraper.scan_pipeline
Adapter-backed today
Canonical registry storage, validation, and the Tag Studio owner/editor surface are now landed; current runtime still reads the adapter-backed contract today.
Date Ranges
ScanRuntimeStore['date_ranges']
scraper.date_ranges
Adapter-backed today
Canonical registry storage, validation, and the Tag Studio owner/editor surface are now landed; the runtime store is still the compatibility-facing owner path today.
Runtime Toggle Flags
ScanRuntimeStore['filter_toggles']
scraper.filter_toggles
Adapter-backed today
Canonical registry storage, validation, and the Tag Studio owner/editor surface are now landed; runtime still reads the adapter-backed path today.
Listings Table Views (quick_filters)
Owns the shared saved-view presets for the Magnetar Console Listings table. Capture a fresh current-state snapshot from
magnetar-console.html#listings, then manage labels, ordering, duplication,
enablement, and advanced JSON here in Tag Studio. This does not control the scraper queue or extract grid.
__TV_USAGE__
Version --
Shared version historyGovernance view for the canonical quick_filters Tag Config domain.
Use Listings to capture the current live table state into a new canonical Listings Table View,
then return here to reorganize and edit the saved payloads. The Listings page remains the
capture surface; Tag Studio is the owner for management.
View
Rules
Actions
Loading Listings Table Views...
History
History not loaded yet.
Edit Listings Table View
Create or select a Listings Table View to edit.
Structured editor
Primary UI-only editor. These inputs write the canonical per-view JSON for you; Domain Registry, Tag Registry, Groups Registry, and Filter Registry selectors stay live here while advanced JSON remains secondary.
Only used when this saved view opens in Card View.
Columns
Primary row-first editor for ordered Listings column keys. Leave it empty to keep the standard Listings column set.
Paste / Import Columns (secondary)
Paste comma or newline separated column keys only when you need bulk recovery/import. Use the button below to push them back into the structured row list.
Group By
Primary row-first editor for ordered grouping keys. Leave it empty when the saved view should not group rows.
Paste / Import Group By (secondary)
Paste comma or newline separated grouping fields only when you need bulk recovery/import. Use the button below to push them back into the structured row list.
Tag Studio (include)
Canonical Tag Studio include rules. Each selector row hydrates from Domain Registry, Tag Registry, Groups Registry, and Filter Registry while showing live Listings row counts where available.
Tag Studio (exclude)
Canonical Tag Studio exclude rules. These selectors stay mapped to the same live owner lanes and write canonical per-family exclusions back into the shared view JSON.
Advanced JSON (secondary)
Use this only for unsupported keys or exact payload edits. If you change supported fields here,
load the JSON back into the structured editor before applying.
The structured fields above rewrite the matching keys (`id`, `label`, `order`, `enabled`,
`view`, `cardSize`, `columns`, `groupBy`, `include`, `exclude`) when you apply the form.
This editor is the primary Listings Table Views control surface. Raw JSON remains available as an advanced fallback,
but normal view editing should happen through the structured fields above.
Canonical city aliases, neighborhood hints, and location vocabularies used to normalize Listings location fields.
Used by
Listings location tree filtersCity/state normalizationLocation-aware tags
Version --
Locations Structured Editor
Primary form-first CRUD surface for canonical city_aliases and locations. Use this editor for routine alias and location-row maintenance; advanced JSON remains a secondary fallback for bulk review or recovery.
City Aliases0 aliases
Each alias row maps a canonical city slug to one human-entered variation used during location normalization.
Locations Rows0 location rows
These rows drive city, town, community, and local/non-local normalization for Listings and downstream filters.
Community
Town
City
Local
Action
Loading location rows...
Loading structured Locations editor...
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The structured Locations editor above is the primary editing surface.
Not loaded yet.
History
History not loaded yet.
Blocklists (blocklists)
Canonical blocked and flagged vocabularies used to suppress or flag listings before they reach operators.
Primary form-first CRUD surface for canonical always_exclude and url_path_exclude_patterns. End-state naming here follows the Domain Family/Sub-family contract: blocklists is the family and url_path_exclude_patterns is the sub-family path. This editor is dynamic, not static seed data: add/remove/save writes the canonical owner document in Tag Config with version history and rollback.
Always Exclude0 terms
Listings matching any of these terms are suppressed before they reach operators.
Use wildcard patterns against the normalized host/path, such as tryst.com/cam*. Matching URLs are hard-skipped before drill, retag cleanup, and direct-detail entry. Defaults only seed empty stores; ongoing adds/removes here are canonical CRUD for Admin/User editing.
Loading structured Blocklists editor...
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The structured Blocklists lists above are the primary editing surface.
Not loaded yet.
History
History not loaded yet.
Services (services)
Canonical service vocabularies and x-service exclusions used to normalize service text into consistent listing tags and filters.
The scraper extracts the full post payload, then domain-scoped Tag Registry tags act as match/inclusion keywords. Selected tags are persisted into the Services domain compatibility arrays so Listings can keep publishing the matched output into x.Services.
Listings <-> Registry <-> Scraper Mapping
Services matching is column-driven: the scraper extracts all post data, Tag Registry domain tags provide the match/inclusion keywords, and matched Services output is published back into Listings x.Services.
Field-driven map; JSON is secondary.
Flow
Listings column
Registry field
Scraper/source fields
Pattern dependency
Editable action
Listings -> Registry
x.Services
services.x_services
listing.services, title, description, source text
Positive patterns depend on the Listings table column for the Services domain.
Select inclusion tags from Tag Registry below.
Registry -> Scraper
x.Services
services.x_services + services.x_services_exclude
scraper classification keywords and service-match runtime
Scraper output is normalized back to the same Listings column contract.
Retag or rescan after saved term changes when runtime data must refresh.
Exclusions -> Listings
x.Services
services.x_services_exclude
listing/search text and classification evidence
Each exclusion pattern is column-scoped to Services and prevents misleading column output.
Select exclusion tags from Tag Registry below.
x.Services inclusion tags0 tags
Choose a Tag Registry domain and tag. That tag becomes an inclusion keyword for the Listings x.Services column.
x.Services exclusion tags0 tags
Choose a Tag Registry domain and tag. That tag suppresses false positive service matches when present.
Loading Tag Registry selector state...
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The mapping table and Tag Registry selector fields above are the primary Services editing surface.
Not loaded yet.
History
History not loaded yet.
Social Filter (social_filter)
Canonical social-platform tag rows used to keep social-site recognition consistent across Listings, scraper review, and downstream operator filters.
Used by
Social-platform recognitionListings social diagnosticsOperator review toggles
Version --
Social Filter Structured Editor
Primary form-first CRUD surface for canonical social_filter. Use this table for routine social-platform key, label, and enabled-state maintenance; advanced JSON remains a secondary fallback for bulk review or recovery.
Key
Label
Enabled
Action
Loading social filter rows...
0 rowsStructured editor is primary; advanced JSON is secondary.
Loading structured Social Filter editor...
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The structured table above is the primary Social Filter editing surface.
Not loaded yet.
History
History not loaded yet.
Sites Registry (scraper.sites)
Canonical scraper-site rows used to keep site URLs, crawl types, delay settings, enablement, and lightweight metadata aligned between Tag Studio and the runtime compatibility bridge.
Used by
Scraper runtime site catalogPer-site crawl delay and max-page defaultsCompatibility bridge for scanner/listings tooling
Version --
Sites Registry Structured Editor
Primary form-first CRUD surface for canonical scraper.sites. Use this table for routine site URL, type, enablement, delay, and notes maintenance; advanced JSON remains a secondary fallback for optional metadata such as login URLs, logos, or extraction-pattern overrides.
Domain
Name
URL
Type
Delay (s)
Max pages
Enabled
Tags
Notes
Action
Loading scraper sites...
0 sitesStructured editor is primary; advanced JSON is secondary.
Loading structured Scraper Sites editor...
Advanced JSON (secondary)
Use raw JSON for bulk import/export, optional metadata, or emergency review only. The structured table above is the primary Scraper Sites editing surface.
Not loaded yet.
History
History not loaded yet.
Site Scan Arguments (scraper.scan_args)
Canonical launch-time scraper instructions used to answer what scan should run: selected sites, max pages, drill or fast mode, unattended mode, scan mode, preset, and extra flags.
Used by
Scraper runtime launch instructionsListings and scrape operator presetsCompatibility bridge for scan-runtime settings
Version --
Site Scan Arguments Structured Editor
Primary form-first CRUD surface for canonical site_scan_args. These are launch-time instructions for the scraper run: selected sites, max pages, drill on/off, unattended mode, scan mode, preset, and extra flags. Advanced JSON remains a secondary fallback for bulk review or recovery.
1 documentStructured editor is primary; advanced JSON is secondary.
Loading structured Site Scan Arguments editor...
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The structured form above is the primary Site Scan Arguments editing surface.
Not loaded yet.
History
History not loaded yet.
Scan Pipeline (scraper.scan_pipeline)
Canonical runtime pipeline stages used to keep stage ordering, action semantics, enablement, apply-to targets, and failure handling aligned between Tag Studio and the scan-runtime compatibility seam.
Primary form-first CRUD surface for canonical scan_pipeline. Use this table for routine stage ordering, action, enablement, apply-to, and failure-policy maintenance; advanced JSON remains a secondary fallback for bulk review or recovery. Steps are normalized to a contiguous 1-x sequence.
Step
Stage
Action
Enabled
Apply To
On Failure
Action
Loading scan pipeline...
0 stagesStructured editor is primary; advanced JSON is secondary.
Loading structured Scan Pipeline editor...
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The structured table above is the primary Scan Pipeline editing surface.
Not loaded yet.
History
History not loaded yet.
Runtime Toggle Flags (scraper.filter_toggles)
Canonical runtime filter-gate booleans used to turn key scraper/listings classifier paths on or off without hand-editing raw compatibility settings.
Used by
Listings Normalization admin visibilityScraper runtime filter gatingOperator diagnostics and remediation
Version --
Runtime Toggle Flags Structured Editor
Primary form-first CRUD surface for canonical filter_toggles. Use this matrix to enable or disable runtime filter gates; advanced JSON remains a secondary fallback for bulk review or recovery.
Runtime key
Enabled
Operator note
Loading runtime toggle flags...
0 togglesStructured editor is primary; advanced JSON is secondary.
Loading structured Runtime Toggle Flags editor...
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The structured toggle matrix above is the primary editing surface.
Not loaded yet.
History
History not loaded yet.
Date Ranges (scraper.date_ranges)
Canonical operator-facing scrape age windows used by scan and review workflows to keep recent/freshness filters consistent across runtime, Listings, and downstream tooling.
Primary form-first CRUD surface for canonical date_ranges. Use this table for routine scrape-window label and minutes maintenance; advanced JSON remains a secondary fallback for bulk review or recovery.
Label
Minutes
Action
Loading date ranges...
0 rangesStructured editor is primary; advanced JSON is secondary.
Loading structured Date Ranges editor...
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The structured table above is the primary Date Ranges editing surface.
Not loaded yet.
History
History not loaded yet.
Price Types (price_types)
Canonical price-type names used to label and sort pricing semantics in Listings.
Primary form-first CRUD surface for canonical price_types. Use this table for routine add/edit/delete work; advanced JSON stays available as a secondary fallback for bulk review or recovery.
Code
Label
Minutes
Action
Loading price types...
0 rowsStructured editor is primary; advanced JSON is secondary.
Advanced JSON (secondary)
Use raw JSON for bulk import/export or emergency review only. The structured table above is the primary Price Types editing surface.
Not loaded yet.
History
History not loaded yet.
Permanently Purge Tag
This action is irreversible. Type the tag term exactly to confirm:
Confirm Action
Delete Listings Table View
Remove this Listings Table View from the staged working set? Save to commit the deletion after confirmation.