feat: Enhance memory management and promotion rules for Mattermost context and user prompts
This commit is contained in:
@@ -12,6 +12,7 @@ Behavior rules:
|
|||||||
|
|
||||||
- Treat `README.md`, `ai/context/`, `ai/state/`, `knowledge/`, and `ai/logs/` as the persistent memory of the project.
|
- Treat `README.md`, `ai/context/`, `ai/state/`, `knowledge/`, and `ai/logs/` as the persistent memory of the project.
|
||||||
- Before answering a prompt that depends on current state, verify the latest relevant files instead of relying only on conversation history.
|
- Before answering a prompt that depends on current state, verify the latest relevant files instead of relying only on conversation history.
|
||||||
|
- For any meaningful prompt, decide whether the interaction adds, corrects, or sharpens project memory.
|
||||||
- When the user provides new durable information, update the right workspace files before or while answering.
|
- When the user provides new durable information, update the right workspace files before or while answering.
|
||||||
- If existing context is stale, correct it directly instead of leaving conflicting versions.
|
- If existing context is stale, correct it directly instead of leaving conflicting versions.
|
||||||
- Promote information carefully:
|
- Promote information carefully:
|
||||||
@@ -20,5 +21,8 @@ Behavior rules:
|
|||||||
- durable project knowledge goes to `ai/context/project.md`
|
- durable project knowledge goes to `ai/context/project.md`
|
||||||
- confirmed team or manager communication preferences go to `ai/context/people/jeff.md`
|
- confirmed team or manager communication preferences go to `ai/context/people/jeff.md`
|
||||||
- confirmed decisions go to `ai/context/decisions/`
|
- confirmed decisions go to `ai/context/decisions/`
|
||||||
|
- Default to writing new same-day information to today's log unless a more durable destination is clearly better.
|
||||||
|
- Update preexisting memory when a new prompt clarifies or corrects something already stored.
|
||||||
|
- Do not wait for a dedicated sync command if the correct memory update is already obvious.
|
||||||
- Do not over-promote uncertain information. Keep uncertain items in the daily log.
|
- Do not over-promote uncertain information. Keep uncertain items in the daily log.
|
||||||
- When drafting communication, preserve technical meaning and improve clarity in natural US English.
|
- When drafting communication, preserve technical meaning and improve clarity in natural US English.
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
description: Force a Mattermost sync using the configured local script
|
description: Sync Mattermost context and automatically promote high-confidence project memory
|
||||||
---
|
---
|
||||||
|
|
||||||
Use the configured Mattermost sync command to fetch fresh communication context into the inbox only.
|
Use the configured Mattermost sync command to fetch fresh communication context and maintain workspace memory automatically.
|
||||||
|
|
||||||
Preferred command sources:
|
Preferred command sources:
|
||||||
|
|
||||||
@@ -16,14 +16,17 @@ Run the command and use its output as fresh communication context:
|
|||||||
Then:
|
Then:
|
||||||
|
|
||||||
- if the command fails, stop there and do not edit any workspace files
|
- if the command fails, stop there and do not edit any workspace files
|
||||||
- if no `ai/inbox/mattermost-latest.md` exists after the sync attempt, do not update project memory
|
- use `ai/inbox/mattermost-latest.md` if it exists and is non-empty
|
||||||
- inspect `ai/inbox/mattermost-latest.md` if it exists
|
- otherwise use `scripts/mattermost/generated/mattermost_context.jsonl` if it exists and is non-empty
|
||||||
- extract only project-relevant candidate facts
|
- apply the memory promotion rules from `knowledge/memory-promotion-rules.md`
|
||||||
- do not update `ai/logs/`, `ai/state/`, or `ai/context/` in this command
|
- automatically promote explicit, project-relevant, high-confidence facts
|
||||||
- if important candidate facts are found, summarize them as promotion candidates for a later explicit command
|
- default destination is `ai/logs/$(date +%F).md`
|
||||||
|
- update `ai/state/current.md` only for facts that materially change the current work window
|
||||||
|
- do not write tooling noise, sync status, or generic chat chatter into project memory
|
||||||
|
- if a fact is ambiguous, skip it rather than asking the user what to do
|
||||||
|
|
||||||
Return:
|
Return:
|
||||||
|
|
||||||
1. What was synchronized
|
1. What was synchronized
|
||||||
2. Candidate project facts worth promoting
|
2. Which files were updated
|
||||||
3. What still needs human confirmation
|
3. Which facts were promoted or intentionally skipped
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ Read:
|
|||||||
@ai/state/current.md
|
@ai/state/current.md
|
||||||
@knowledge/workspace-model.md
|
@knowledge/workspace-model.md
|
||||||
@knowledge/communication-rules.md
|
@knowledge/communication-rules.md
|
||||||
|
@knowledge/memory-promotion-rules.md
|
||||||
|
|
||||||
Today's log, if present:
|
Today's log, if present:
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
description: Update workspace memory from new facts, corrections, or Mattermost notes
|
description: Update workspace memory from new facts, corrections, or contextual notes
|
||||||
---
|
---
|
||||||
|
|
||||||
Use this command when new information should become part of the persistent workspace context.
|
Use this command when new information should become part of the persistent workspace context.
|
||||||
@@ -13,6 +13,8 @@ Read:
|
|||||||
@ai/state/current.md
|
@ai/state/current.md
|
||||||
@knowledge/workspace-model.md
|
@knowledge/workspace-model.md
|
||||||
@knowledge/communication-rules.md
|
@knowledge/communication-rules.md
|
||||||
|
@knowledge/agent-memory-rules.md
|
||||||
|
@knowledge/memory-promotion-rules.md
|
||||||
|
|
||||||
Today's existing log, if present:
|
Today's existing log, if present:
|
||||||
|
|
||||||
@@ -34,6 +36,8 @@ Instructions:
|
|||||||
- If an existing statement became stale, replace or refine it
|
- If an existing statement became stale, replace or refine it
|
||||||
- Do not invent missing facts
|
- Do not invent missing facts
|
||||||
- Keep uncertain information in the daily log instead of promoting it to stable context
|
- Keep uncertain information in the daily log instead of promoting it to stable context
|
||||||
|
- Do not ask for promotion confirmation when the correct destination is already clear
|
||||||
|
- Prefer correcting canonical memory over appending duplicate summaries
|
||||||
|
|
||||||
After editing, respond with:
|
After editing, respond with:
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,15 @@ async function resolveSyncCommand(directory) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function resolveSyncContent(directory, stdoutText) {
|
||||||
|
const cleaned = (stdoutText || "").trim()
|
||||||
|
if (cleaned) return cleaned
|
||||||
|
|
||||||
|
const generatedPath = path.join(directory, "scripts/mattermost/generated/mattermost_context.jsonl")
|
||||||
|
const generated = await safeRead(generatedPath)
|
||||||
|
return (generated || "").trim()
|
||||||
|
}
|
||||||
|
|
||||||
export const MattermostInbox = async ({ $, directory, client }) => {
|
export const MattermostInbox = async ({ $, directory, client }) => {
|
||||||
let lastSyncAt = 0
|
let lastSyncAt = 0
|
||||||
|
|
||||||
@@ -54,7 +63,8 @@ export const MattermostInbox = async ({ $, directory, client }) => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
await mkdir(inboxDir, { recursive: true })
|
await mkdir(inboxDir, { recursive: true })
|
||||||
const output = (await $`bash -lc ${command}`.text()).trim()
|
const stdoutText = await $`bash -lc ${command}`.text()
|
||||||
|
const output = await resolveSyncContent(directory, stdoutText)
|
||||||
const previous = await safeRead(latestPath)
|
const previous = await safeRead(latestPath)
|
||||||
|
|
||||||
if (output) {
|
if (output) {
|
||||||
|
|||||||
10
AGENTS.md
10
AGENTS.md
@@ -27,9 +27,17 @@ These are also loaded through `opencode.json`.
|
|||||||
- Assume the workspace may contain stale context until checked.
|
- Assume the workspace may contain stale context until checked.
|
||||||
- Before answering questions that depend on current work state, inspect `ai/state/current.md` and the latest relevant log under `ai/logs/`.
|
- Before answering questions that depend on current work state, inspect `ai/state/current.md` and the latest relevant log under `ai/logs/`.
|
||||||
- If `ai/inbox/mattermost-latest.md` exists, inspect it for fresher communication context before answering standup, status, or manager-message prompts.
|
- If `ai/inbox/mattermost-latest.md` exists, inspect it for fresher communication context before answering standup, status, or manager-message prompts.
|
||||||
|
- For any meaningful prompt, decide whether the interaction introduces or corrects project memory.
|
||||||
- If a sync command, extraction script, or inbox refresh fails, do not update logs, state, or context files from that failed attempt.
|
- If a sync command, extraction script, or inbox refresh fails, do not update logs, state, or context files from that failed attempt.
|
||||||
- Treat sync failures as operational errors, not project context.
|
- Treat sync failures as operational errors, not project context.
|
||||||
- `mattermost-sync` should refresh inbox context only. It must not update `ai/logs/`, `ai/state/`, or stable context files unless the user explicitly asks to promote confirmed project facts.
|
- `mattermost-sync` should automatically promote high-confidence project facts without asking what to promote.
|
||||||
|
- Prefer `ai/logs/` as the default destination for new Mattermost-derived facts.
|
||||||
|
- Promote to `ai/state/current.md` only when the fact materially changes active work over the next few days.
|
||||||
|
- Promote to `ai/context/project.md` only when the fact changes durable project understanding.
|
||||||
|
- Never promote tooling chatter, sync status, or generic conversation noise.
|
||||||
|
- Direct user prompts are also memory sources. Do not limit memory updates to explicit sync commands.
|
||||||
|
- If a new prompt corrects prior understanding, update the canonical file directly instead of keeping both versions alive.
|
||||||
|
- Do not ask what should be saved when the correct destination is already clear.
|
||||||
- If the user provides durable new facts, update the appropriate context files instead of leaving the new information only in chat history.
|
- If the user provides durable new facts, update the appropriate context files instead of leaving the new information only in chat history.
|
||||||
- If a previous context file is now stale or inaccurate, update that file directly.
|
- If a previous context file is now stale or inaccurate, update that file directly.
|
||||||
- Prefer correcting canonical context over appending contradictory notes.
|
- Prefer correcting canonical context over appending contradictory notes.
|
||||||
|
|||||||
12
ai/AGENTS.md
12
ai/AGENTS.md
@@ -63,12 +63,18 @@ When drafting messages for Jeff:
|
|||||||
- Treat workspace files as persistent memory, not just reference notes
|
- Treat workspace files as persistent memory, not just reference notes
|
||||||
- Before answering prompts about current work, verify `ai/state/current.md` and the latest relevant log in `ai/logs/`
|
- Before answering prompts about current work, verify `ai/state/current.md` and the latest relevant log in `ai/logs/`
|
||||||
- If `ai/inbox/mattermost-latest.md` exists, check it before answering prompts about current status, standups, or supervisor communication
|
- If `ai/inbox/mattermost-latest.md` exists, check it before answering prompts about current status, standups, or supervisor communication
|
||||||
|
- Treat all meaningful user prompts as potential memory updates, not only explicit sync commands
|
||||||
- If a Mattermost sync or other context-ingestion step fails, do not update `ai/logs/`, `ai/state/`, or stable context files based on that failure
|
- If a Mattermost sync or other context-ingestion step fails, do not update `ai/logs/`, `ai/state/`, or stable context files based on that failure
|
||||||
- Do not record missing dependencies, failed sync attempts, or missing inbox files as project facts unless the user explicitly asks to track the operational issue
|
- Do not record missing dependencies, failed sync attempts, or missing inbox files as project facts unless the user explicitly asks to track the operational issue
|
||||||
- Treat `mattermost-sync` as inbox refresh only. Do not automatically promote synced content into project memory
|
- Auto-promote Mattermost content when it is clearly project-relevant, explicit, and high-confidence
|
||||||
- Promote Mattermost content only when it is clearly project-relevant, confirmed enough to keep, and the user explicitly asks to sync or promote project context
|
- Auto-promote direct user-provided project facts when they are clearly project-relevant, explicit, and useful for future sessions
|
||||||
|
- Default promotion target is today's log
|
||||||
|
- Promote to `ai/state/current.md` only when the fact changes the active work window
|
||||||
|
- Promote to `ai/context/project.md` only when the fact is durable beyond the current work window
|
||||||
|
- Update existing memory when the new information is a correction, clarification, or refinement of something already stored
|
||||||
- Prefer updating stable project context over appending generic operational summaries
|
- Prefer updating stable project context over appending generic operational summaries
|
||||||
- Do not create daily log entries for tooling activity, sync status, or generic chat noise
|
- Do not create daily log entries for tooling activity, sync status, or generic chat noise
|
||||||
|
- Do not ask the user what should be promoted after a successful sync unless multiple conflicting interpretations are equally plausible
|
||||||
- When the user shares relevant new information, update today's log if the information belongs to the daily record
|
- When the user shares relevant new information, update today's log if the information belongs to the daily record
|
||||||
- When the user corrects or changes stable context, update the canonical file directly:
|
- When the user corrects or changes stable context, update the canonical file directly:
|
||||||
- `ai/state/current.md` for current focus or active concerns
|
- `ai/state/current.md` for current focus or active concerns
|
||||||
@@ -86,7 +92,7 @@ For day-to-day prompts in this workspace:
|
|||||||
|
|
||||||
1. Verify the latest relevant context.
|
1. Verify the latest relevant context.
|
||||||
2. Decide whether the prompt introduces new durable information.
|
2. Decide whether the prompt introduces new durable information.
|
||||||
3. Update the workspace when needed, but never from a failed sync or failed tool run, and never auto-promote Mattermost sync results.
|
3. Update the workspace when needed, whether the source is a normal prompt, a sync, or a drafting conversation, but never from a failed sync or failed tool run.
|
||||||
4. Then answer using the refreshed context.
|
4. Then answer using the refreshed context.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
116
knowledge/agent-memory-rules.md
Normal file
116
knowledge/agent-memory-rules.md
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
# Agent Memory Rules
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Make workspace memory maintenance part of the agent's normal job, not a separate optional workflow.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Default Agent Behavior
|
||||||
|
|
||||||
|
For any meaningful prompt, the agent should decide whether the interaction changes project memory.
|
||||||
|
|
||||||
|
This applies to:
|
||||||
|
|
||||||
|
- direct user prompts
|
||||||
|
- Mattermost sync results
|
||||||
|
- translated notes
|
||||||
|
- standup generation
|
||||||
|
- manager-update drafting
|
||||||
|
- debugging discussions
|
||||||
|
- corrections to previous understanding
|
||||||
|
|
||||||
|
The agent should not wait for a separate promotion command when the right update is already clear.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What Counts As Memory-Worthy
|
||||||
|
|
||||||
|
Capture information automatically when it is:
|
||||||
|
|
||||||
|
- project-relevant
|
||||||
|
- explicit enough to preserve safely
|
||||||
|
- likely to matter in a future session
|
||||||
|
- useful for standups, debugging, or supervisor communication
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
- confirmed story creation, points, scope, or priority
|
||||||
|
- confirmed reproduction constraints
|
||||||
|
- newly clarified root cause framing
|
||||||
|
- approved manager guidance that changes work direction
|
||||||
|
- confirmed version, dependency, or rollout facts tied to current work
|
||||||
|
- corrections to previously stored project context
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What The Agent Must Do
|
||||||
|
|
||||||
|
When new memory-worthy information appears, the agent should:
|
||||||
|
|
||||||
|
1. decide whether it is daily, current-state, durable, or decision-level context
|
||||||
|
2. update the smallest correct set of files
|
||||||
|
3. correct stale or conflicting existing statements
|
||||||
|
4. answer the user using the refreshed context
|
||||||
|
|
||||||
|
Do not ask the user what to promote unless the ambiguity is real and material.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Selection
|
||||||
|
|
||||||
|
### `ai/logs/YYYY-MM-DD.md`
|
||||||
|
|
||||||
|
Default destination for:
|
||||||
|
|
||||||
|
- same-day progress
|
||||||
|
- same-day findings
|
||||||
|
- scoped reproduction notes
|
||||||
|
- story and approval movement
|
||||||
|
- context that is important now but may evolve later
|
||||||
|
|
||||||
|
### `ai/state/current.md`
|
||||||
|
|
||||||
|
Use when the fact changes the active work window, including:
|
||||||
|
|
||||||
|
- current priorities
|
||||||
|
- currently active story scope
|
||||||
|
- current blockers or debugging constraints
|
||||||
|
- manager direction that changes the next few days of work
|
||||||
|
|
||||||
|
### `ai/context/project.md`
|
||||||
|
|
||||||
|
Use for durable project knowledge that should survive beyond the current work window.
|
||||||
|
|
||||||
|
### `ai/context/people/jeff.md`
|
||||||
|
|
||||||
|
Use only when a communication preference or manager expectation becomes stable enough to reuse repeatedly.
|
||||||
|
|
||||||
|
### `ai/context/decisions/*.md`
|
||||||
|
|
||||||
|
Use for explicit confirmed decisions with ongoing impact.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What Not To Store
|
||||||
|
|
||||||
|
Do not store:
|
||||||
|
|
||||||
|
- tool failures
|
||||||
|
- sync attempts
|
||||||
|
- generic urgency messages
|
||||||
|
- duplicate paraphrases of the same fact
|
||||||
|
- weak guesses
|
||||||
|
- operational chatter that does not change project understanding
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Correction Rule
|
||||||
|
|
||||||
|
If new information supersedes old memory:
|
||||||
|
|
||||||
|
- update the existing canonical file
|
||||||
|
- do not leave stale and corrected versions side by side
|
||||||
|
- preserve qualifiers if the fact is only partially confirmed
|
||||||
|
|
||||||
|
The agent should behave like a senior engineer maintaining project notes, not like a chat assistant accumulating transcripts.
|
||||||
106
knowledge/memory-promotion-rules.md
Normal file
106
knowledge/memory-promotion-rules.md
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
# Memory Promotion Rules
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Keep workspace memory current automatically without asking the user what to promote after every successful sync.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Default Rule
|
||||||
|
|
||||||
|
When new Mattermost context is explicit, project-relevant, and high-confidence, promote it automatically.
|
||||||
|
|
||||||
|
Do not ask for promotion confirmation by default.
|
||||||
|
|
||||||
|
If a fact is ambiguous, skip it or keep it only in the daily log with appropriate qualifiers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## File Selection
|
||||||
|
|
||||||
|
### Promote to `ai/logs/YYYY-MM-DD.md`
|
||||||
|
|
||||||
|
Use the daily log for:
|
||||||
|
|
||||||
|
- concrete same-day work updates
|
||||||
|
- story creation, sizing, approval, and scope updates
|
||||||
|
- manager-approved wording or root-cause framing tied to current work
|
||||||
|
- confirmed version checks tied to active work
|
||||||
|
- reproduction findings that are useful now but may still evolve
|
||||||
|
|
||||||
|
Daily logs are the default destination for most promoted Mattermost facts.
|
||||||
|
|
||||||
|
### Promote to `ai/state/current.md`
|
||||||
|
|
||||||
|
Use current state only for facts that materially affect active work over the next few days, such as:
|
||||||
|
|
||||||
|
- approved active story scope
|
||||||
|
- confirmed current debugging constraints
|
||||||
|
- current reproduction conditions that change how the work is approached
|
||||||
|
- near-term priorities confirmed by manager communication
|
||||||
|
|
||||||
|
Do not copy every daily update into current state.
|
||||||
|
|
||||||
|
### Promote to `ai/context/project.md`
|
||||||
|
|
||||||
|
Use project context only for durable project knowledge that should survive beyond the current work window, such as:
|
||||||
|
|
||||||
|
- stable architecture constraints
|
||||||
|
- recurring debugging truths
|
||||||
|
- persistent testing limitations
|
||||||
|
- enduring behavior of REST, GraphQL, XFlow, auth, or entry points
|
||||||
|
|
||||||
|
Do not promote story-specific daily movement into project context unless it changes durable project understanding.
|
||||||
|
|
||||||
|
### Promote to `ai/context/decisions/*.md`
|
||||||
|
|
||||||
|
Use decisions only for explicit confirmed decisions with medium or long-term impact.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Do Not Promote
|
||||||
|
|
||||||
|
Do not record these as project memory:
|
||||||
|
|
||||||
|
- tooling activity
|
||||||
|
- sync status
|
||||||
|
- missing dependencies
|
||||||
|
- empty inbox situations
|
||||||
|
- reminders or urgency without project substance
|
||||||
|
- unapproved drafts
|
||||||
|
- generic chat noise
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Confidence Rules
|
||||||
|
|
||||||
|
Auto-promote when the signal is high-confidence, for example:
|
||||||
|
|
||||||
|
- Jeff explicitly approves something
|
||||||
|
- a Jira story number, title, points, or scope is explicitly confirmed
|
||||||
|
- a version is stated directly and tied to the active project
|
||||||
|
- a reproduction condition is clearly stated with scope qualifiers
|
||||||
|
|
||||||
|
If confidence is mixed:
|
||||||
|
|
||||||
|
- prefer the daily log
|
||||||
|
- preserve qualifiers such as "appears", "currently", or "for authenticated users"
|
||||||
|
- avoid promoting to stable project context
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Example Policy
|
||||||
|
|
||||||
|
Given Mattermost updates like:
|
||||||
|
|
||||||
|
- PDIAP-15836 created and sized at 8 points
|
||||||
|
- Jeff approved a story title
|
||||||
|
- REST-removal scope was approved
|
||||||
|
- XFlowViewMaker 0.5.0 is already in Fid4
|
||||||
|
- AO DOB validation issue appears auth-only in TeenIdentityCheck
|
||||||
|
|
||||||
|
Automatic behavior should be:
|
||||||
|
|
||||||
|
- add all of them to today's log if they are relevant to today's work
|
||||||
|
- promote only the currently actionable subset to `ai/state/current.md`
|
||||||
|
- keep story-specific details out of `ai/context/project.md` unless they reveal a durable project rule
|
||||||
@@ -48,6 +48,8 @@
|
|||||||
"./ai/context/decisions/discourse-handling.md",
|
"./ai/context/decisions/discourse-handling.md",
|
||||||
"./ai/AGENTS.md",
|
"./ai/AGENTS.md",
|
||||||
"./knowledge/workspace-model.md",
|
"./knowledge/workspace-model.md",
|
||||||
"./knowledge/communication-rules.md"
|
"./knowledge/communication-rules.md",
|
||||||
|
"./knowledge/agent-memory-rules.md",
|
||||||
|
"./knowledge/memory-promotion-rules.md"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ Use OpenCode as the daily AI entry point for this workspace without losing proje
|
|||||||
- Root rules also load automatically from `AGENTS.md`.
|
- Root rules also load automatically from `AGENTS.md`.
|
||||||
- The main context command reads the stable workspace files plus today's log.
|
- The main context command reads the stable workspace files plus today's log.
|
||||||
- Mattermost context can be refreshed into `ai/inbox/` using your existing local sync script.
|
- Mattermost context can be refreshed into `ai/inbox/` using your existing local sync script.
|
||||||
|
- Direct prompts are also treated as memory opportunities, so the agent can update workspace context during normal conversation.
|
||||||
- Daily updates go back into the workspace, so later prompts inherit better context.
|
- Daily updates go back into the workspace, so later prompts inherit better context.
|
||||||
- The local compaction plugin helps preserve the most important workspace context during long sessions.
|
- The local compaction plugin helps preserve the most important workspace context during long sessions.
|
||||||
- This reduces reliance on fragile session memory.
|
- This reduces reliance on fragile session memory.
|
||||||
|
|||||||
Reference in New Issue
Block a user