feat(tools): give every assistant the Daedalus workspace file tools

All 17 assistants can now read and write their Daedalus workspace. The
MCP server, the per-team `dmcp_` tokens, and the deploy templates were
already wired; what was missing was that no agent had the server in its
list and no prompt ever described the tools. Even the four agents that
did have it (Shawn, Jarvis, Harper, Scotty) only knew Daedalus as the
thing that schedules their inbox check.

Adds the tool docs (docs/tools/daedalus.md human reference,
prompts/tools/daedalus.md LLM snippet), a per-team-styled tool block in
all 17 prompts, a Daedalus row in all 17 bibles, and the server row in
the shared MCP inventory.

The discipline that matters: the workspace name is injected per
conversation and must be passed verbatim, agents may only write into
generated collections, and there is no delete tool — so a bad title is
permanent and revise beats republish.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-27 07:16:25 -04:00
parent fefc9018ab
commit e67d5c32fc
40 changed files with 387 additions and 0 deletions

View File

@@ -40,6 +40,7 @@ CASE works *upstream* of Scotty. Once a host is provisioned and reachable, ongoi
|---|---|
| **Kernos** | The Linux console — the primary interface, on `korax.helu.ca` in production. Every operation routes through here. |
| **Argos** | Web lookups only when the answer isn't on the box — vendor docs, CLI flags, README excerpts, advisories |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Ouranos); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Accurate timestamps for logs and reports — never assume the current date |
CASE deliberately does NOT use most other tools. Mnemosyne, Grafana, Github, Neo4j — these aren't part of the field-systems role. The narrow toolset is part of the design; CASE is the box and the network, nothing else.

View File

@@ -55,6 +55,7 @@ Harper owns the **build** half of the engineering team. Ideation, prototyping, w
| **Andromeda** | Shell ops on dev/staging hosts; file inspection; running experiments |
| **Mnemosyne** | Reference material, pulled context, multimodal exploration |
| **Neo4j** | Lab notebook — Prototype and Experiment nodes — plus reading what the rest of the team knows |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Ouranos); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
Tool details and gotchas live in [docs/tools/](../tools/).

View File

@@ -68,6 +68,7 @@ When something is wrong, Scotty's process:
| **Grafana** | Logs, metrics, and dashboard queries during incident response and capacity work; querying historical state when "what changed?" is the question |
| **Mnemosyne** | Runbooks, past incident records, reference architectures |
| **Neo4j** | Infrastructure and Incident nodes; reading what's deployed and what depends on what |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Ouranos); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
Tool details and gotchas live in [docs/tools/](../tools/).

View File

@@ -103,6 +103,8 @@ The leads delegate certain repetitive or narrow tasks to engineering subagents
Each agent's tool usage is documented in their own doc (Harper: [harper.md](harper.md), Scotty: [scotty.md](scotty.md), CASE: [case.md](case.md)) — the agent doc is the source of truth for which tools that agent uses. The tool catalog (per-tool reference, gotchas) lives at [docs/tools/](../tools/).
**Daedalus** is shared by every agent on every team — the workspace document store, and the assistants' only persistent place to write prose. The engineering team is filed under the **Engineering** scope, which reaches the **Ouranos** workspace; the workspace an agent is operating in is injected per conversation rather than fixed per agent. See [docs/tools/daedalus.md](../tools/daedalus.md).
The canonical graph schema (all 17 assistants, all node types) is at [docs/tools/neo4j/unified-schema.md](../tools/neo4j/unified-schema.md).
## Cross-Team Touchpoints

View File

@@ -62,6 +62,7 @@ Matches Robert watched or attended get `Match` nodes — date, competition, team
| **Kairos** | Calendar entries for matches — when Robert is attending, when must-watch fixtures are scheduled, tournament windows. Reads to know what's coming; writes when Robert commits to attending. Coordinate with Shawn for the broader calendar. |
| **Mnemosyne** | Robert's curated football reading — books on tactics, club histories, biographies. Scope by `library_type`: `nonfiction` for football writing, `journal` for Robert's own match notes. |
| **Argos** | Quick reference — vendor announcements, transfer news, the article everyone's talking about, fact-checks before strong claims |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Match timing, kick-off windows in different timezones, season calendar math |
For deep research on a topic — a tactical question across multiple matches, a comparison spanning eras, a deep-dive on a club's recent history — delegate to the **research** subagent.

View File

@@ -84,6 +84,7 @@ Music gets `Music` nodes (title, artist, year, rating, notes — the notes are w
| **Periplus** | Stores, theatres, studios, apothecaries — the *places* where culture and good taste live. Collections by city or by type. **Always `search_places` first; never estimate coordinates.** |
| **Orpheus** | Robert's Kawai piano. David's lens is *demonstration through play* — illustrating a chord progression he's recommending, playing the passage he's describing, setting a mood with a piece while talking about it. Different from Hypatia's pedagogical use; David uses Orpheus to *show* rather than *teach*. |
| **Argos** | Looking up an exhibition's dates, a film's release, a designer's recent collection, a music release Robert mentioned |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Cultural calendar — when an exhibition closes, when an album drops, the era of a piece |
For deep multi-query research on an artist, a movement, or a body of work, delegate to the **research** subagent.

View File

@@ -70,6 +70,7 @@ Accounts get `Account` nodes — TFSA, RRSP, non-registered, joint, etc. — wit
| **Neo4j** | Primary tool — Account, Investment, Asset, Liability, Budget, FinancialGoal nodes. The long arc of Robert's financial life lives here. Reads broadly — Nate's `Trip` for travel budgeting, Watson's `Value` nodes for finance-versus-life-values alignment, Hypatia's `Book` for financial-literacy reading. |
| **Mnemosyne** | Robert's curated financial reading. Scope by `library_type`: `finance` for statements, tax records, market commentary (quote figures exactly), `nonfiction` for personal-finance books, `journal` for Robert's own notes on money decisions. |
| **Argos** | Current rates, ETF performance, market news, Canadian-specific announcements (BoC rate decisions, federal budget changes, tax-bracket updates) |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Tax-year math, time-value-of-money calculations, "how long until retirement" framing |
For deep multi-query research on a specific security, sector, or financial strategy, delegate to the **research** subagent.

View File

@@ -58,6 +58,7 @@ Books get `Book` nodes (title, author, status, themes, takeaways). Authors get `
| **Neo4j** | Book, Author, Topic, LearningPath, Concept, Quote nodes. Cross-references across other agents — Watson's `Reflection` and `EmotionalMemory` when reading touches relationships; Garth's books for financial literacy; David's `Music` and `Film` for adaptations. |
| **Argos** | Researching a book before recommending it; finding what's been written about a concept; locating primary sources |
| **Orpheus** | Pedagogical use — demonstrating music-theory concepts on the piano. A scale to hear, a chord progression to compare, a fugue's opening to dissect. Use when *hearing* the concept teaches faster than describing it. |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Date-stamping reading sessions, tracking when Robert read what, "when did I last read about X" calculations |
For deep multi-query research on a topic or author, delegate to the **research** subagent rather than running long Argos chains.

View File

@@ -53,6 +53,7 @@ Each training session gets a `Training` node — date, exercises performed, perc
|---|---|
| **Neo4j** | Primary tool — Training, Exercise, Program, PersonalRecord, BodyMetric nodes. The long arc of practice lives here. Reads broadly — Watson's `EmotionalMemory` for "how is Robert really doing," Nate's upcoming trips when training needs to prep for activity, Sophia's nutrition for performance support. |
| **Mnemosyne** | Robert's curated training and fitness reading — what he's been studying, what frameworks he's found useful. Scope by `library_type`: `nonfiction` (training books), `journal` (Robert's own notes on his training experience). |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Workout timing, "how long since last session" calculations, recovery windows, scheduling progression |
| **Argos** | Quick reference — exercise form cues, programming approaches, current research on training topics. Light use; most training context lives in Neo4j or Mnemosyne already. |

View File

@@ -61,6 +61,7 @@ A new trip typically writes to all three: create the Periplus collection and boo
| **Kairos** | Trip windows on the calendar; contacts at the destination when relevant. Coordinate with Shawn when calendar conflicts surface. |
| **Argos** | Heavy use — destination research, current conditions, visa requirements, weather windows, recent news affecting travel |
| **Mnemosyne** | Robert's curated journal and travel writing — past trips, places he wants to go. Scope queries by `library_type` (`journal` for personal entries, `nonfiction` for travel writing). |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Trip date math, time zones, "when's the best month to go" calculations |
For deep multi-query research on a destination, delegate to the **research** subagent rather than running long Argos chains in context.

View File

@@ -70,6 +70,7 @@ When a new contact comes in, Shawn writes to both: create the Kairos record (can
| **Kairos** | Primary tool — the canonical store for contacts, calendar events, and tasks. Look up before discussing; write back when records need to change. |
| **Neo4j** | Contact, Event, Communication nodes — the relationship-interpretation layer on top of Kairos. Also reads broadly across other personal agents to coordinate (Nate's trips for calendar, Marcus's training schedule, etc.) |
| **Argos** | Quick web research — confirming a restaurant address, looking up a contact's company, fact-checking before drafting an email |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Calendar logic, scheduling, reminder windows, "how long since" calculations |
| **Periplus** | Venues and addresses behind events and contacts — the canonical coordinates for where something is happening. **Always `search_places` first; never estimate coordinates.** Also the general-assistant catch-all for places that aren't another specialist's domain. |

View File

@@ -76,6 +76,7 @@ The `Observation` node carries extra weight for Sophia, because until Hecate exp
| **Periplus** | Places where provisioning happens — markets, butchers, fish shops, nurseries, garden suppliers, restaurants. Collections by city or type. **Always `search_places` first; never estimate coordinates.** |
| **Mnemosyne** | Robert's curated reading. Scope by `library_type`: `nonfiction` for food writing and natural history, `technical` for care manuals and aquarium chemistry, `journal` for Robert's own notes. |
| **Argos** | Quick lookups — is that restaurant still open, what is eating the tomatoes this year, current care guidance for a species. Light use; depth lives in Neo4j and Mnemosyne. |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Seasonality is fundamental in both halves of the domain — what is in season, when to plant, when blooms come, when the tank needs a water change. Never assume the date. |
For deep research on a cuisine, a species, or a horticultural problem, delegate to the **research** subagent.

View File

@@ -135,6 +135,8 @@ The personal team's distinctive tools beyond the shared ones:
- **Orpheus** — Kawai piano MCP. Primarily used by David for actually playing music rather than just talking about it, but available to any agent with a legitimate reason to play something. See [docs/tools/orpheus.md](../tools/orpheus.md).
- **Mnemosyne** — Robert's curated multimodal KB. Available to all personal agents via team-based authentication; each agent self-filters by `library_type` based on their domain (Hypatia → fiction/nonfiction, David → music/film/art, Watson → journal, Sophia → nonfiction food writing and natural history, Garth → finance, etc.). See [docs/tools/mnemosyne.md](../tools/mnemosyne.md).
**Daedalus** is shared by every agent on every team — the workspace document store, and the assistants' only persistent place to write prose. The personal team is filed under the **Personal** scope, which reaches the **Home**, **Assistant**, and **World Cup 2026** workspaces; the workspace an agent is operating in is injected per conversation rather than fixed per agent. See [docs/tools/daedalus.md](../tools/daedalus.md).
The canonical graph schema (all 17 assistants, all node types) is at [docs/tools/neo4j/unified-schema.md](../tools/neo4j/unified-schema.md).
## Cross-Team Touchpoints

View File

@@ -75,6 +75,7 @@ Watson's writes carry more emotional weight than other agents'. Some specific pa
| **Neo4j** | Primary tool — the 9 node types (Reflection, Value, Habit, LifeEvent, Intention, EmotionalMemory, RelationshipTheme, DialogueNote, DynamicPattern). The relationship memory and pattern tracking live here. Reads broadly — Shawn's `Contact` and `Communication` for who Robert is talking about and the recent interaction history, Marcus's `Training` to see whether the body has been a factor. |
| **Kairos** | Read-heavy. Pull contact context (who Robert is talking about — name, relationship, history) and event context (a wedding, a funeral, a kid's birthday — life events that ground emotional conversations). Writes only when adding life events Watson is specifically tracking; the relationship-interpretation layer stays in Neo4j. |
| **Mnemosyne** | Robert's curated journal and reading. Scope by `library_type`: `journal` for his own entries (the most relevant for Watson's work — what Robert was already thinking about a person or a pattern), `nonfiction` for books on relationships, attachment, communication. |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Home); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Date-stamping reflections, "how long since" calculations, knowing what season or life-phase a memory belongs to |
Watson generally does NOT use: Kernos/Grafana (engineering), Periplus (geographic — Nate's domain), Nike (football — Cristiano's domain), Orpheus (music — David's or Hypatia's domain), Argos (the outside web is rarely what Watson needs; what he needs is Robert's own context).

107
docs/tools/daedalus.md Normal file
View File

@@ -0,0 +1,107 @@
# Daedalus
> The chat platform the assistants speak through — and, via its MCP server, their persistent workspace document store.
- **MCP server name:** `daedalus`
- **Prompt snippet:** [prompts/tools/daedalus.md](../../prompts/tools/daedalus.md)
- **Project repo:** `/home/robert/git/daedalus`
## What It Is
Daedalus is the front door: the web and voice chat UI, the workspace/collection/file model behind it, and the scheduler that fires automations. Everywhere else in the estate Daedalus is an MCP *client* — it calls Pallas-hosted agents. The `daedalus` MCP server is the one place it acts as a **server**, and it exposes a single mount at `/mcp`.
For the assistants, the point is **persistence**. A conversation is ephemeral; a workspace file is not. The file tools let an agent list what Robert has uploaded, read it, publish its own finished work back, and revise that work later — which makes a workspace the assistants' shared long-term document memory, complementary to Neo4j (structured facts) and Mnemosyne (curated reading).
The same server also carries the **phone senses** (`read_phone_screen`, `recent_notifications`, `send_sms`), which only function during a live mobile voice session. Those are scoped to the mobile agent and are not part of the file surface every agent gets.
## Concepts
| Concept | What it means |
|---|---|
| **Workspace** | A named container for files, e.g. "Home", "Ouranos", "Amazon Connect". The unit of reach. |
| **Collection** | A folder within a workspace, with a **provenance**. Every workspace has `default` (`user`) and `published` (`generated`). |
| **Provenance** | `user` = Robert uploaded it, ground truth. `generated` = an assistant authored it, an opinion. |
| **Scope** | The authorization realm. 1:1 with a Pallas team, M:M with workspaces — this is what decides which workspaces a team's agents can reach. |
**Provenance is the load-bearing distinction.** It is why agents may read everything in reach but may only *write* into `generated` collections — an assistant can never overwrite or forge one of Robert's own uploads.
## MCP Tools
All four take `workspace` as the first argument, accepting the workspace **id, slug, or display name**. Agents are told the display name, so that is what they normally pass; the resolver strips surrounding quotes, markdown emphasis, and case differences, because small models echo the injected name with decoration.
### `list_workspace_files(workspace, collection=None)`
Returns one line per file, newest first:
```
- soil-moisture-notes.md (id=…, collection=published, provenance=generated, size=4213B)
```
The `id` is what every other tool wants. Optionally filter to one collection slug.
### `read_workspace_file(workspace, file_id)`
Returns the file's text. Non-UTF-8 files come back as a description (`"…: 91234 bytes of application/pdf; not text-readable."`) rather than an error. Text over **200,000 characters** is truncated with a `…[truncated]` marker.
### `publish_generated_document(workspace, title, body_markdown, collection="published", as_of=None, sources=None)`
Writes a new Markdown document. The title is slugified into the filename. `provenance='generated'` and `author_agent` are taken from the authenticated identity, **never from the payload** — an agent cannot claim to be someone else or claim its output is a user upload. `as_of` defaults to now; `sources` is an optional list of references.
Publishing also triggers the Mnemosyne ingest hook, so a published document becomes searchable.
### `revise_workspace_file(workspace, file_id, body_markdown)`
Replaces the body of an existing generated file. Refused on `user` collections.
**There is no delete tool.** This is deliberate — an agent cannot destroy content. The consequence is that a badly-titled publish is permanent as a filename and can only be corrected in body text, so agents should treat the title as a commitment.
## Authentication and reach
One `dmcp_` bearer token per Pallas team, minted in Daedalus, gating the whole server. The token resolves to the team's `PallasInstance`; reach is then derived from that instance's **scope**:
```
agent → team (PallasInstance) → scope → workspaces
```
Both halves must be present. A team with `scope_id = NULL` reaches **nothing**, even for reads. Current filing:
| Team | Scope | Workspaces in reach |
|---|---|---|
| Iolaus (personal) | Personal | Home, Assistant, World Cup 2026 |
| Mentor (work) | Work | Amazon Connect, Infrastructure |
| Kottos (engineering) | Engineering | Ouranos |
Reach is checked on **every call**, so adding a workspace to a scope grants access immediately with no redeploy.
## Who Uses Daedalus
**Every agent on all three teams**, as the standard workspace read/write surface — the same way every agent gets `time` and `neo4j_cypher`.
The workspace an agent operates in is not a property of the agent; it is injected per conversation by Daedalus. The same agent speaking in the Home workspace and in the Assistant workspace files into different places. By convention Sophia's workspace is **Home**, but nothing is hardcoded.
## What It's Good For
- Persisting a finished piece of work — a memo, a plan, a research summary — past the end of the conversation
- Reading what Robert has uploaded into the workspace under discussion
- Dropping a long document from context and re-reading it on demand (context compaction)
- Handing work between agents: one publishes, another reads
- Making assistant output human-reviewable in the Daedalus UI
## What It's Not Good For
- Structured facts and relationships — that's Neo4j; a document is not a queryable node
- Searching across everything Robert has curated — that's Mnemosyne
- Scratch space — every publish is a real, undeleteable file
- Storing anything non-Markdown; the publish tool takes Markdown text only
- Deleting or tidying up — no delete tool exists
## Known Gotchas
- **Refusals are returned as ordinary tool text, not errors.** An agent that does not read the result carefully will carry on as though the write succeeded. They are logged server-side as `mcp_file_tool_refused` — grep Loki for that when a write silently did not happen.
- **"Forbidden" is deliberately ambiguous.** A workspace outside scope and a workspace that does not exist return the identical message, so the tool surface can't be used to enumerate workspace names. When debugging, check the scope filing rather than assuming the name is wrong.
- **The single commonest failure is a mangled workspace name.** The system line quotes the name for exactly this reason; earlier versions used markdown bold and small models echoed the asterisks.
- **Agents may not write to `default`.** Attempts return the `provenance` refusal. `published` is the generated collection in every workspace today.
- **`as_of` silently defaults to now**, which asserts the content is current. An agent summarizing stale material must set it explicitly.
- **File-reach and knowledge-reach both derive from scope**, so they always agree. This was not true before mid-2026, when Mnemosyne reach came from a separate join table and could diverge from file reach.
- **Phone senses share this server but not its auth model** — they need a live mobile session, not just a valid token, and return a plain "unavailable right now" string outside one.
- **A stale API container serves stale tools.** Daedalus runs a bind-mounted backend; `docker compose restart api` is required after a pull, since `up -d` reloads nothing.

View File

@@ -17,6 +17,7 @@ MCP tool discovery tells you what each tool does at runtime. This table gives yo
| **rommie** | Computer automation (Agent S, MATE desktop) | caliban.incus |
| **github** | GitHub Copilot MCP | api.githubcopilot.com |
| **context7** | Library/framework documentation lookup | local (npx) |
| **daedalus** | Workspace files — read Robert's uploads, publish and revise your own documents | daedalus.ouranos.helu.ca |
| **time** | Current time and timezone | local |
**Korax is your workbench.** For shell commands and file operations, use Korax (Kernos MCP). Call `get_shell_config` first to see what commands are whitelisted.

View File

@@ -69,6 +69,7 @@ Strategic decisions get a `Decision` node — title, context, options considered
| **Neo4j** | Strategic decisions, competitive intelligence, market trends, client portfolio assessments — the primary tool |
| **Athena** | Client portfolio analysis, relationship strategy, account reviews — the CRM-side view of clients and opportunities. Read-heavy; occasional writes for strategic-level notes on clients and competitive vendor records. |
| **Argos** | Quick web checks — vendor announcements, industry news, competitor moves |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Amazon Connect); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Date-stamping decisions and observations |
Alan generally does NOT use: Kernos (no shell work), Grafana (no ops), Mnemosyne (some overlap with content but Ann owns the curated KB side), Context7/GitHub/Gitea (no code work).

View File

@@ -53,6 +53,7 @@ Content shipped gets a `Content` node — title, type, status, where it appeared
| **Neo4j** | Content tracking — what's been published where, on what topics — and reading Alan's positioning decisions to ensure content aligns |
| **Argos** | Research for content — current state of a topic, what's been said by others, sources to link to |
| **Mnemosyne** | Robert's curated reading and notes — the raw material for authentic content. What has he actually been reading, thinking about, working on? |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Amazon Connect); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Publishing dates, content scheduling |
Ann generally does NOT use: Athena (the CRM-level client/opp data isn't her primary lens — that's Jeffrey/Alan/Jarvis), Kernos (no shell work), Grafana, Context7/GitHub/Gitea (no code work).

View File

@@ -60,6 +60,7 @@ Tasks get `Task` nodes (title, status, priority, due date). Meetings get `Meetin
|---|---|
| **Neo4j** | Task, Meeting, Note, Decision nodes. Daily operations memory — what's pending, what got done, what's coming up. |
| **Athena** | Client and contact context for meetings, scheduling exchanges, and follow-up. Less deep than Jeffrey's use; more "who am I talking to and what's the history." Writes back new contacts and post-meeting contact notes when appropriate. |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Amazon Connect); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Calendar logic, due dates, meeting time-windows |
| **Argos** | Quick research for meeting prep, fact-checks for drafted messages |
| **Mnemosyne** | Past notes and reference material relevant to the current task |

View File

@@ -62,6 +62,7 @@ Opportunities get `Opportunity` nodes (stage, value, probability, next action).
|---|---|
| **Athena** | Primary source for client and opportunity intelligence. Look up history *before* any sales conversation or proposal work; write back stage transitions, notes, and new contacts after a meaningful interaction. |
| **Neo4j** | Pipeline progression and sales intelligence — Opportunity, Proposal, Contact, Meeting nodes. The institutional memory of every deal. |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Amazon Connect); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Date-stamping every interaction; pipeline cadence calculations |
| **Inbox** | Cross-agent messages — handoffs from Alan, content drops from Ann, scheduling from Jarvis |

View File

@@ -57,6 +57,7 @@ Pressure-tests a proposed design — does the trade-off math hold, is anything o
| **Argos** | Quick tactical web checks; deeper investigation goes to tech_research. |
| **Mnemosyne** | Prior solutions, reference architectures, past-engagement notes. |
| **Context7** | SDK/framework specifics when building demos. |
| **Daedalus** | Workspace files. Read what Robert has uploaded into the current workspace (e.g. Amazon Connect); publish finished documents into the `published` collection and revise them later. The workspace is injected per conversation, not fixed per agent. |
| **Time** | Timestamping Solution and Demo nodes; conversations span days. |
Quentin's Kernos and aws_sa access are **scoped to demo environments** — unlike Harper (sandbox) and Scotty (production). He does NOT operate production infrastructure or run production ops.

View File

@@ -130,6 +130,8 @@ Each agent's tool usage is documented in their own doc — the agent doc is the
The work team's distinctive tool is **Athena** — a CRM-like platform for clients, vendors, contacts, opportunities, and pipeline. Alan, Jeffrey, and Jarvis use Athena heavily. Ann generally doesn't. See [docs/tools/athena.md](../tools/athena.md).
**Daedalus** is shared by every agent on every team — the workspace document store, and the assistants' only persistent place to write prose. The work team is filed under the **Work** scope, which reaches the **Amazon Connect** and **Infrastructure** workspaces; the workspace an agent is operating in is injected per conversation rather than fixed per agent. See [docs/tools/daedalus.md](../tools/daedalus.md).
The canonical graph schema (all 17 assistants, all node types) is at [docs/tools/neo4j/unified-schema.md](../tools/neo4j/unified-schema.md).
## Cross-Team Touchpoints