惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
GbyAI
GbyAI
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
腾讯CDC
博客园 - Franky
Engineering at Meta
Engineering at Meta
C
Check Point Blog
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
I
InfoQ
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
Last Week in AI
Last Week in AI
S
SegmentFault 最新的问题
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Intent first, stacks second: why Topogram centers contracts
John Attebur · 2026-05-17 · via DEV Community
Cover image for Intent first, stacks second: why Topogram centers contracts

John Attebury

Topogram chains three layers:

  1. Spec — durable intent in topo/ (.tg statements, projections, widgets, SDLC records, and supporting docs).
  2. Contract — the engine validates and resolves that graph into normalized semantics per surface (screens and widget bindings on a ui_contract, endpoints on an api_contract, tables on a db_contract, and so on).
  3. Slicetopogram query slice returns a context_slice: one focus (task, widget, journey, projection, …), its depends_on closure, summary payloads, and related summaries—without loading the whole workspace into context.

Projection type is how contracts divide the problem: ui_contract vs web_surface / native surfaces, api_contract, db_contract, cli_surface.

Spec snippet → slice payload

Author intent in topo/ (example: a reusable widget):

widget widget_data_grid {
  patterns [resource_table, data_grid_view]
  regions [results, toolbar]
}

Enter fullscreen mode Exit fullscreen mode

Ask for a bounded packet:

topogram query slice ./topo --widget widget_data_grid --json

Enter fullscreen mode Exit fullscreen mode

You get a context_slice object: focus (what this slice is about), depends_on (IDs in closure order), summary (normalized semantics for that focus), optional agent_guidance (read_first, next_queries), plus related, verification_targets, ownership_boundary, ui_agent_packet, and other fields omitted below for length.

Representative excerpt (shape matches CLI output from the app-basic fixture workspace):

{
  "type": "context_slice",
  "focus": { "kind": "widget", "id": "widget_data_grid" },
  "depends_on": {
    "shapes": ["shape_output_item_card"],
    "projections": ["proj_ui_contract", "proj_web_surface", "proj_web_surface_react"],
    "capabilities": [],
    "entities": [],
    "widgets": [],
    "verifications": []
  },
  "summary": {
    "kind": "widget",
    "id": "widget_data_grid",
    "name": "Data Grid",
    "description": "Reusable tabular display for item rows",
    "patterns": ["data_grid_view", "resource_table"],
    "behavior": ["selection", "sorting"],
    "regions": ["results", "toolbar"]
  },
  "agent_guidance": {
    "mode": "implementation",
    "read_first": [
      "focus",
      "summary",
      "depends_on",
      "related",
      "standing_rules",
      "verification_targets",
      "write_scope"
    ]
  }
}

Enter fullscreen mode Exit fullscreen mode

Same pattern for --task, --journey, --projection, and other selectors: one focus, explicit dependencies, and summaries rather than the whole graph.

Benefits

  • Portable semantics — one graph backs UI, API, DB, CLI intent.
  • Slice-first workflows — humans and agents load contract-shaped packets keyed to one surface or SDLC artifact instead of scraping the repo.

Tradeoffs

  • topo/ authoring cost pays off when shared intent matters more than one-off edits.
  • Semantic contracts intentionally stop short of pixel-perfect CSS or every framework detail.

Bottom line

Spec → contract → slice: declare intent once, resolve it into portable semantics, then pull only the closure you need into an actionable packet.