git clone https://github.com/plurigrid/asi
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/browser-history-acset" ~/.claude/skills/plurigrid-asi-browser-history-acset-fc6e14 && rm -rf "$T"
skills/browser-history-acset/SKILL.mdBrowser History ACSet
Trit: 0 (ERGODIC - information coordination)
Foundation: PyACSet ↔ ACSets.jl path equivalence verified
Overview
Unified categorical structure for browser history across:
- ChatGPT Atlas (Chromium-based)
- Chrome, Arc, Brave, Firefox, Safari
Uses GF(3) trit classification for browsing behavior analysis.
Schema
┌─────────────────────────────────────────────────────────────┐ │ BrowserHistoryACSet Schema │ ├─────────────────────────────────────────────────────────────┤ │ Objects: Browser, URL, Visit, Domain, SearchQuery │ │ │ │ Morphisms: │ │ browser_of: URL → Browser │ │ domain_of: URL → Domain │ │ url_of: Visit → URL │ │ from_visit: Visit → Visit (reflexive, navigation chain) │ │ │ │ Attributes: │ │ browser_name: Browser → String │ │ url_text: URL → String │ │ visit_time: Visit → Int │ │ domain_name: Domain → String │ │ trit: Domain → Int (-1, 0, +1) │ └─────────────────────────────────────────────────────────────┘
Path Equivalence Tests
Verified cross-language compatibility between Python and Julia:
| Operation | Python (PyACSet) | Julia (ACSets.jl) | Match |
|---|---|---|---|
| nparts(A) | 2 | 2 | ✓ |
| subpart(1, :f) | 1 | 1 | ✓ |
| incident(1, :f) | [1] | [1] | ✓ |
| path 1→f→g | 1 | 1 | ✓ |
Key Operations
# Python (PyACSet) url = acset.subpart(visit_id, "url_of") domain = acset.path(visit_id, "url_of", "domain_of") referrers = acset.incident(url_id, "url_of")
# Julia (ACSets.jl) url = subpart(acs, visit_id, :url_of) domain = subpart(acs, subpart(acs, visit_id, :url_of), :domain_of) referrers = incident(acs, url_id, :url_of)
GF(3) Domain Classification
| Trit | Category | Examples | Behavior |
|---|---|---|---|
| +1 | PLUS (Creation) | github.com, ampcode.com, arxiv.org | Building, learning |
| 0 | ERGODIC (Info) | google.com, youtube.com, x.com | Coordination, info |
| -1 | MINUS (Consumption) | amazon.com, netflix.com, reddit.com | Consuming, extracting |
Current Data (ChatGPT Atlas)
╔═══════════════════════════════════════════════════════════════╗ ║ Browser History ACSet ║ ╠═══════════════════════════════════════════════════════════════╣ ║ Browser : 3 parts ║ ║ URL : 4529 parts ║ ║ Visit : 8569 parts ║ ║ Domain : 511 parts ║ ║ SearchQuery : 36 parts ║ ║ Download : 41 parts ║ ╠═══════════════════════════════════════════════════════════════╣ ║ GF(3) Sum : 13 ║ ╚═══════════════════════════════════════════════════════════════╝ Top Domains: [+] github.com : 1066 visits (creation) [○] mermaid.live : 655 visits (coordination) [+] ampcode.com : 453 visits (creation) [+] elevenlabs.io : 268 visits (creation) [+] huggingface.co : 188 visits (creation)
Usage
# Extract browser history as ACSet python3 browser_history_acset.py # Run path equivalence tests python3 path_equivalence_test.py # Julia verification julia path_equivalence_test.jl
Integration Points
- Tenderloin WEV: Geographic browsing patterns → impact zones
- OlmoEarth-MLX: Location-aware embeddings for browsing
- GeoACSet: Spatial categorization of online activity
- DuckDB: Temporal queries on visit history
Specter-Style Navigation
# Select all visits to github.com github_visits = ( SELECT(ALL("Visit")) >> FILTER(lambda v: acset.path(v, "url_of", "domain_of") and acset.subpart(acset.path(v, "url_of", "domain_of"), "domain_name") == "github.com") ) # Transform: add trit to all URLs in domain TRANSFORM( SELECT(ALL("URL")) >> FILTER(lambda u: acset.subpart(u, "domain_of") == d1), lambda u: acset.set_subpart(u, "trit", 1) )
Canonical Triads
browser-history-acset (0) ⊗ olmoearth-mlx (+1) ⊗ tenderloin (-1) = 0 ✓ py-acset (0) ⊗ ACSets.jl (+1) ⊗ DuckDB (-1) = 0 ✓
References
Related Skills
(0) - Path equivalence via coequalizer quotientscoequalizers
(0) - ACSet foundationsacsets
(-1) - Time-based path analysistemporal-coalgebra
Scientific Skill Interleaving
This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
Annotated Data
- anndata [○] via bicomodule
Bibliography References
: 734 citations in bib.duckdbgeneral
SDF Interleaving
This skill connects to Software Design for Flexibility (Hanson & Sussman, 2021):
Primary Chapter: 10. Adventure Game Example
Concepts: autonomous agent, game, synthesis
GF(3) Balanced Triad
browser-history-acset (○) + SDF.Ch10 (+) + [balancer] (−) = 0
Skill Trit: 0 (ERGODIC - coordination)
Secondary Chapters
- Ch3: Variations on an Arithmetic Theme
- Ch4: Pattern Matching
- Ch2: Domain-Specific Languages
- Ch1: Flexibility through Abstraction
Connection Pattern
Adventure games synthesize techniques. This skill integrates multiple patterns.
Cat# Integration
This skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:
Trit: 0 (ERGODIC) Home: Prof Poly Op: ⊗ Kan Role: Adj Color: #26D826
GF(3) Naturality
The skill participates in triads satisfying:
(-1) + (0) + (+1) ≡ 0 (mod 3)
This ensures compositional coherence in the Cat# equipment structure.