update global AGENTS with test updates, update browser-harness and artifact presenter for html view
This commit is contained in:
@@ -61,7 +61,8 @@ Below you will find my preferences so that we can be more aligned as we work tog
|
|||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
- Always write tests for any changed behavior.
|
- Write appropriate tests for changed behavior.
|
||||||
|
- Do not add tests unnecessarily. Simple straightforward code does not need a unit test for every single branch.
|
||||||
- Tests should be focused. Endless smoke tests, or regression tests for feature removals, are not as useful.
|
- Tests should be focused. Endless smoke tests, or regression tests for feature removals, are not as useful.
|
||||||
- Always run tests before commits and do not report them successful unless all tests have actually executed.
|
- Always run tests before commits and do not report them successful unless all tests have actually executed.
|
||||||
- E2E tests must be written and validate with realistic data. Garbage In, Garbage Out. Test data needs to emulate, or be, real data.
|
- E2E tests must be written and validate with realistic data. Garbage In, Garbage Out. Test data needs to emulate, or be, real data.
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
name: artifact-presenter
|
name: artifact-presenter
|
||||||
description: Present any single local file the user needs to review, including documents, source, archives, PDFs, images, and videos, through mcat in a reusable Herdr pane. Also use for structured long-form reports, plans, ADRs, reviews, and summaries unless the user requests inline chat.
|
description: Present local artifacts for review: use Browser Harness for interactive web artifacts, especially HTML, and mcat for non-web files, Markdown, and static source.
|
||||||
---
|
---
|
||||||
|
|
||||||
# Artifact presenter
|
# Artifact presenter
|
||||||
|
|
||||||
Present reviewable files and substantial generated content in a reusable terminal document pane instead of duplicating the complete artifact in chat.
|
Present reviewable files and substantial generated content through the appropriate viewer instead of duplicating the complete artifact in chat.
|
||||||
|
|
||||||
## Choose the artifact
|
## Choose the artifact
|
||||||
|
|
||||||
@@ -23,6 +23,11 @@ Treat an explicit destination and format as authoritative. For generated content
|
|||||||
|
|
||||||
Keep ordinary explanations, code diffs, logs, multi-file comparisons, and user-requested inline responses in chat. Present a file only when it is a user-facing review artifact, not merely because the agent read it during investigation.
|
Keep ordinary explanations, code diffs, logs, multi-file comparisons, and user-requested inline responses in chat. Present a file only when it is a user-facing review artifact, not merely because the agent read it during investigation.
|
||||||
|
|
||||||
|
Choose the presentation path:
|
||||||
|
|
||||||
|
- **Interactive web artifacts, especially `.html`:** use the Browser Harness/Browser Use-backed workflow.
|
||||||
|
- **Non-web files, Markdown, and static source:** use mcat in the reusable Herdr pane.
|
||||||
|
|
||||||
Completion criterion: select exactly one existing or generated artifact path before presentation.
|
Completion criterion: select exactly one existing or generated artifact path before presentation.
|
||||||
|
|
||||||
## Prepare generated content
|
## Prepare generated content
|
||||||
@@ -31,11 +36,17 @@ Write the complete deliverable to the selected path. Keep it self-contained: the
|
|||||||
|
|
||||||
Preserve repository documentation conventions. Creating a presentation artifact under `/tmp` does not authorize editing repository files when the request is otherwise read-only.
|
Preserve repository documentation conventions. Creating a presentation artifact under `/tmp` does not authorize editing repository files when the request is otherwise read-only.
|
||||||
|
|
||||||
When presenting an existing file, pass the original file directly to mcat. Do not create a converted copy merely for display.
|
When presenting an existing non-web file, pass the original file directly to mcat. Do not create a converted copy merely for display.
|
||||||
|
|
||||||
Completion criterion: the selected file exists and contains the complete review artifact.
|
Completion criterion: the selected file exists and contains the complete review artifact.
|
||||||
|
|
||||||
## Present with mcat
|
## Present interactive web artifacts
|
||||||
|
|
||||||
|
Load and follow the [`browser-harness`](../browser-harness/SKILL.md) skill. Open the local artifact URL in a real browser through the Browser Harness/Browser Use-backed workflow, then verify the browser target reports the artifact URL and page title. When normal Chrome attachment is unavailable, use browser-harness's documented local HTML fallback.
|
||||||
|
|
||||||
|
Completion criterion: the active browser target reports the local artifact URL and page title.
|
||||||
|
|
||||||
|
## Present non-web artifacts with mcat
|
||||||
|
|
||||||
Run the helper using its absolute path resolved from this skill directory:
|
Run the helper using its absolute path resolved from this skill directory:
|
||||||
|
|
||||||
@@ -57,7 +68,7 @@ mcat <input> --output html > <output.html>
|
|||||||
mcat <input> --output image > <output.png>
|
mcat <input> --output image > <output.png>
|
||||||
```
|
```
|
||||||
|
|
||||||
Use an explicit output path and preserve the source file. Present the resulting single file through the helper when the user needs to review it.
|
Use an explicit output path and preserve the source file. Present the resulting single file through the matching presentation path above when the user needs to review it.
|
||||||
|
|
||||||
## Respond concisely
|
## Respond concisely
|
||||||
|
|
||||||
@@ -65,6 +76,7 @@ Return:
|
|||||||
|
|
||||||
- a one- to three-sentence result summary;
|
- a one- to three-sentence result summary;
|
||||||
- the artifact path;
|
- the artifact path;
|
||||||
- whether the reusable mcat pane was opened or reused, or why presentation fell back to the file only.
|
- for interactive web artifacts, that Browser Harness presented the artifact and verified its URL/title;
|
||||||
|
- for other artifacts, whether the reusable mcat pane was opened or reused, or why presentation fell back to the file only.
|
||||||
|
|
||||||
Do not repeat the complete artifact in chat. Honor a later request to paste any section inline.
|
Do not repeat the complete artifact in chat. Honor a later request to paste any section inline.
|
||||||
|
|||||||
@@ -46,6 +46,35 @@ chrome://inspect/#remote-debugging
|
|||||||
|
|
||||||
Ask the user to tick "Allow remote debugging for this browser instance" and click Allow if Chrome shows a permission popup. Then retry the same `browser-harness` command.
|
Ask the user to tick "Allow remote debugging for this browser instance" and click Allow if Chrome shows a permission popup. Then retry the same `browser-harness` command.
|
||||||
|
|
||||||
|
## Local HTML fallback (Vivaldi)
|
||||||
|
|
||||||
|
Use this fallback only to present a local HTML artifact when normal Chrome attachment is unavailable. An existing Vivaldi can absorb `vivaldi --remote-debugging-port=9222`, causing its launcher to exit without exposing CDP. Launch a separate Vivaldi process with an isolated profile. For a persistent launch, use the coding harness's tracked background-task facility when available rather than shell `&`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vivaldi --remote-debugging-port=9222 --user-data-dir=/tmp/pi-vivaldi-cdp --no-first-run file:///absolute/path/to/artifact.html
|
||||||
|
```
|
||||||
|
|
||||||
|
Reload the harness daemon before connecting so it drops any stale Chrome connection:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
browser-harness --reload
|
||||||
|
BU_CDP_URL=http://127.0.0.1:9222 browser-harness <<'PY'
|
||||||
|
print(page_info())
|
||||||
|
PY
|
||||||
|
```
|
||||||
|
|
||||||
|
If `page_info()` initially times out on Vivaldi's blank attached target, inspect the targets, open the artifact in a new tab, and verify again:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
BU_CDP_URL=http://127.0.0.1:9222 browser-harness <<'PY'
|
||||||
|
print(cdp('Target.getTargets'))
|
||||||
|
new_tab('file:///absolute/path/to/artifact.html')
|
||||||
|
print(page_info())
|
||||||
|
PY
|
||||||
|
```
|
||||||
|
|
||||||
|
Completion criterion: `page_info()` reports the artifact's file URL and page title.
|
||||||
|
|
||||||
## Remote Browsers
|
## Remote Browsers
|
||||||
|
|
||||||
Use Browser Use cloud for headless servers, parallel sub-agents, or isolated work.
|
Use Browser Use cloud for headless servers, parallel sub-agents, or isolated work.
|
||||||
|
|||||||
Reference in New Issue
Block a user