refactor: update agent sync behavior, improve freshness detection patterns, and add diagnostic troubleshooting script
This commit is contained in:
@@ -21,6 +21,12 @@ Mattermost is the current live communication connector.
|
||||
- Generated extraction artifacts stay under `scripts/mattermost/generated/`.
|
||||
- Failed syncs must not update project knowledge.
|
||||
- Latest-message requests must refresh Mattermost before answering.
|
||||
- Latest-message requests are read-first. The agent may identify a memory update candidate, but should not edit `project-knowledge/` from the latest-message command unless the user explicitly asks to promote the fact.
|
||||
- Standup generation is a separate required-refresh flow: it must fetch Mattermost before drafting, even though general prompts should not sync automatically.
|
||||
- Do not refresh Mattermost just because a prompt mentions a manager or stakeholder.
|
||||
- Treat document review, message polishing, translation, and "does this align with Jeff's expectations?" prompts as normal drafting tasks unless the user explicitly asks for the latest message or fresh Mattermost evidence.
|
||||
- The OpenCode plugin syncs automatically only for explicit latest-message requests by default.
|
||||
- Optional aggressive sync can be enabled with `AIW_MATTERMOST_SYNC_ON_SESSION=true` or `AIW_MATTERMOST_SYNC_ON_PROMPT=true`, but these should stay off for low-latency daily use.
|
||||
|
||||
---
|
||||
|
||||
@@ -31,4 +37,3 @@ Slack export import is the current historical archive connector.
|
||||
- Archive evidence stays outside `project-knowledge/`.
|
||||
- Promote only durable project facts, people context, process rules, or historical architecture lessons.
|
||||
- Do not promote dated status details unless they explain current context.
|
||||
|
||||
|
||||
@@ -27,6 +27,8 @@ Capture reusable prompting lessons so the agent does not need to re-research the
|
||||
- Use concrete anti-patterns when a recurring failure mode is known; models respond better to explicit "do not do X" guidance than to general advice alone.
|
||||
- Prefer source-bound selection rules when stale or overly broad context can pollute the answer.
|
||||
- If a task depends on chronology, state chronology explicitly as an output rule.
|
||||
- If a task depends on dates, inject an explicit temporal context block near the top of the command: current timestamp, today, calendar yesterday, and the default previous workday. Do not rely on the model to infer this from session history.
|
||||
- Delegate date arithmetic to code or shell commands and feed the result back to the model as data.
|
||||
- If concision matters, define how to compress: what should be merged, what should remain split, and what should be omitted.
|
||||
- If the output is meant to be sent directly, make "copy/paste ready" part of the contract.
|
||||
- Avoid mixing task logic with human-facing project documentation; reusable prompting logic belongs in prompts, commands, skills, or agent memory.
|
||||
@@ -36,6 +38,7 @@ Capture reusable prompting lessons so the agent does not need to re-research the
|
||||
## Standup-Specific Lessons
|
||||
|
||||
- The model should not infer "worked yesterday" from durable status alone.
|
||||
- The standup command should anchor `today`, `yesterday`, and `previous workday` with absolute dates before reading logs or Mattermost evidence.
|
||||
- `Yesterday` should be tied to previous-workday evidence first, then disambiguated with current memory.
|
||||
- Only active work items should be expanded by default; avoid loading every ticket note when generating short status output.
|
||||
- Future-sprint work should be excluded from `Today` unless it is a real blocker or the user explicitly wants forward-looking planning.
|
||||
|
||||
Reference in New Issue
Block a user