@yottagraph-app/aether-instructions 1.1.32 → 1.1.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
package/rules/aether.mdc
CHANGED
|
@@ -8,13 +8,13 @@ alwaysApply: true
|
|
|
8
8
|
|
|
9
9
|
**Structure:** `pages/` (file-based routing), `components/`, `composables/`, `server/api/`, `agents/` (Python ADK), `mcp-servers/` (Python FastMCP).
|
|
10
10
|
|
|
11
|
-
**Data:** This app runs on the Lovelace platform -- entities, news, filings, sentiment, relationships, events. See the `data` rule for access patterns and gotchas. Skill docs: `skills/data-model/` (entity types, properties, relationships; `SKILL.md` first). Do NOT call external APIs for data the platform provides.
|
|
11
|
+
**Data:** This app runs on the Lovelace platform -- entities, news, filings, sentiment, relationships, events. See the `data` rule for access patterns and gotchas. Skill docs: `skills/data-model/` (entity types, properties, relationships; `SKILL.md` first), `skills/elemental-mcp-patterns/` (MCP response shapes, property type handling, Python patterns for agent tools). Do NOT call external APIs for data the platform provides.
|
|
12
12
|
|
|
13
13
|
**Storage:** KV (Upstash Redis) for preferences and lightweight state via `Pref<T>` from `usePrefsStore()`. Neon Postgres for relational data if connected (check `.env` for `DATABASE_URL`).
|
|
14
14
|
|
|
15
15
|
**Source of truth:** `DESIGN.md` -- read before starting work, update when changing features. The starter UI is placeholder -- replace freely. Feature docs in `design/` for implementation planning.
|
|
16
16
|
|
|
17
|
-
**Git:** Commit meaningful units of work. Run `npm run format` before commit. Message format: `[Agent commit] {summary}`.
|
|
17
|
+
**Git:** Commit meaningful units of work. Run `npm run format` before commit. Message format: `[Agent commit] {summary}`. Push directly to main — do NOT create PRs or feature branches.
|
|
18
18
|
|
|
19
19
|
**First action for a new project:** Run `/build_my_app`.
|
|
20
20
|
|
package/rules/agents-data.mdc
CHANGED
|
@@ -71,18 +71,45 @@ In production, all Elemental API calls go through the Portal Gateway at
|
|
|
71
71
|
`broadchurch.yaml`) and the portal injects its own Auth0 M2M token
|
|
72
72
|
upstream.
|
|
73
73
|
|
|
74
|
-
##
|
|
74
|
+
## MCP-based agents
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
When the project uses **MCP-only data architecture**, agents access the
|
|
77
|
+
knowledge graph through Elemental MCP tools instead of REST. The MCP tools
|
|
78
|
+
(`elemental_get_entity`, `elemental_get_related`, `elemental_get_events`,
|
|
79
|
+
etc.) handle entity resolution, NEID formatting, and schema lookups
|
|
80
|
+
automatically. Use the `data-model` skill docs for entity types,
|
|
81
|
+
properties, and relationship schemas.
|
|
82
|
+
|
|
83
|
+
Wire MCP into ADK agents by declaring an `McpToolset` that points to the
|
|
84
|
+
Elemental MCP server. The MCP server URL and auth are configured in the
|
|
85
|
+
agent's runtime environment (typically via `broadchurch.yaml` gateway
|
|
86
|
+
proxy). See the Aether `agents` rule for ADK agent structure.
|
|
87
|
+
|
|
88
|
+
**Read the `elemental-mcp-patterns` skill** (`skills/elemental-mcp-patterns/`)
|
|
89
|
+
before writing tool code. It covers MCP response shapes, property type
|
|
90
|
+
handling (the `data_nindex` problem), and copy-paste Python patterns for
|
|
91
|
+
entity resolution, property formatting, events, and relationships.
|
|
92
|
+
|
|
93
|
+
## Reliability invariants
|
|
94
|
+
|
|
95
|
+
These constraints reduce failure modes when building graph-aware agents,
|
|
96
|
+
whether using REST or MCP:
|
|
78
97
|
|
|
79
98
|
- **Resolve entities first.** For named-entity questions, do explicit entity
|
|
80
99
|
resolution before deeper property/relationship/event retrieval.
|
|
81
100
|
- **Prefer domain endpoints over heuristic matching.** Use dedicated event or
|
|
82
|
-
relationship APIs
|
|
101
|
+
relationship APIs (`elemental_get_events`, event endpoints) instead of
|
|
102
|
+
inferring semantics from property/PID names. Substring-matching PID names
|
|
103
|
+
for words like "event" or "filing" returns wrong results — PIDs like
|
|
104
|
+
"filed" are document relationship IDs, not event timestamps.
|
|
83
105
|
- **Keep IDs internal to tool calls.** Use NEIDs/EIDs internally for precise
|
|
84
|
-
requests, and render human-readable names in user-facing output.
|
|
85
|
-
|
|
86
|
-
|
|
106
|
+
requests, and render human-readable names in user-facing output. Never
|
|
107
|
+
show raw NEIDs to users.
|
|
108
|
+
- **Handle reference-typed properties (`data_nindex`).** Some property
|
|
109
|
+
values are entity references (NEIDs), not display text. Use
|
|
110
|
+
`elemental_get_schema` or the data-model skill to check a property's
|
|
111
|
+
type. For `data_nindex` properties (e.g. "country" on an organization),
|
|
112
|
+
resolve the NEID to a display name before rendering. A helper like
|
|
113
|
+
`_pid_types()` that maps PIDs to their schema type is very useful.
|
|
87
114
|
- **Treat 404 as not-found data by default.** Validate server health
|
|
88
115
|
separately before classifying these as connectivity failures.
|
package/rules/git-support.mdc
CHANGED
|
@@ -43,6 +43,19 @@ Do **not** run Prettier directly — always use `npm run format`. After formatti
|
|
|
43
43
|
|
|
44
44
|
If a user asks about this error, explain the `npm run format` requirement.
|
|
45
45
|
|
|
46
|
-
##
|
|
46
|
+
## Pushing
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
**Push directly to main.** Vercel auto-deploys on push to main, so this
|
|
49
|
+
gets the app live immediately.
|
|
50
|
+
|
|
51
|
+
**Do NOT create pull requests** — do not run `gh pr create` or create
|
|
52
|
+
feature branches. In Cursor Cloud environments, the GitHub integration
|
|
53
|
+
token lacks PR permissions (known Cursor issue). Pushing to main is the
|
|
54
|
+
correct workflow.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
git push origin main
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
If running locally (not in Cursor Cloud), the user may prefer a PR-based
|
|
61
|
+
workflow — ask before pushing directly to main in that case.
|
|
@@ -14,7 +14,7 @@ In **mcp-only** mode, **Elemental MCP** is the primary way agents reach the know
|
|
|
14
14
|
|
|
15
15
|
**B. Investigation / research / aggregation** — Agent uses MCP tools **during multi-step reasoning**: compare entities, trace relationships, pull events or filings, summarize. Typical outputs: a **final answer**, a **report artifact**, or **partial writes** to a store; a full graph replica is optional. Postgres is optional.
|
|
16
16
|
|
|
17
|
-
**C. Channel / concierge** — Agent is the **user
|
|
17
|
+
**C. Channel / concierge** — Agent is the **user's interface** to the graph: user message → agent selects and invokes MCP tools → **natural-language reply** (with optional structured blocks). Often pairs with **`useAgentChat`** in Nuxt; **no local DB** required for the graph if answers are computed on the fly.
|
|
18
18
|
|
|
19
19
|
You can deploy **multiple agents** with different mixes of A–C.
|
|
20
20
|
|
|
@@ -32,7 +32,9 @@ export DATABASE_URL="postgresql://..."
|
|
|
32
32
|
|
|
33
33
|
## Tool surface
|
|
34
34
|
|
|
35
|
-
MCP tools handle schema, entity resolution, related entities, events, sentiment, etc. Use them for **discovery** in research agents and for **batch extraction** in sync agents. Match tool choice to the pattern (A/B/C) in each agent
|
|
35
|
+
MCP tools handle schema, entity resolution, related entities, events, sentiment, etc. Use them for **discovery** in research agents and for **batch extraction** in sync agents. Match tool choice to the pattern (A/B/C) in each agent's `instruction`.
|
|
36
|
+
|
|
37
|
+
**Read the `elemental-mcp-patterns` skill** (`skills/elemental-mcp-patterns/SKILL.md`) before writing tool code. It covers MCP response shapes, property type handling (the `data_nindex` problem), and copy-paste Python patterns for entity resolution, property formatting, events, and relationships.
|
|
36
38
|
|
|
37
39
|
## Reliability invariants (MCP agents)
|
|
38
40
|
|