# Weekly review test pack

A text-first tutorial for Memex custom agents. Synthetic data only; no personal journal content, API keys or provider credentials.

## Files

- system-prompt.txt: exact English prompt used for the independent exercise. It accepts raw text or extracts XML-decoded combined_text from a user_input_submitted event, then checks /weekly-review.
- sample-input.txt: synthetic October 5-11, 2026 week in Asia/Shanghai; R6 deliberately falls on October 12 and must be excluded.
- sample-event.xml: a manually constructed source-shaped event envelope around the same input, including the host's prefix. It is not captured from a phone.
- sample-output.md: verbatim output from the independent Codex subagent text-only exercise. It is not an installed Memex app or selected-provider recording.
- reference-config.json: source-model reference, not an app import file. Replace systemPrompt with the text file. The model key is omitted; if you use the JSON in code it falls back to app defaults. The tutorial tells you to choose your saved model explicitly in the UI.

## Checks and scope

On 2026-10-17, the reference configuration plus actual prompt was parsed, validated and JSON round-tripped through Memex's real CustomAgentConfig Dart class. This confirms configuration structure, not provider availability or end-to-end phone execution.

The separate prompt exercise used an independent Codex subagent with synthetic text. The original input, source-shaped event envelope and an unrelated negative input were checked separately. The expected negative response is SKIPPED without tool use. The prompt is a behavior instruction, not a pre-model event filter or security permission.

A user_input_submitted subscription may run for every new recording input while enabled. Start disabled, enable for one review, then disable. File working-directory scope does not isolate all tools or stop provider requests. The Pure host includes file tools and event-log search; the prompt forbids journal/event-log searches, permanent memory, Skills, JavaScript and network operations for this exercise.

Async means queued device execution, not a weekly scheduler. Generated review-file writing and session visibility require checking in your installed release. No reminder, message or downstream task is authorized by this example.

## Source snapshot

Memex commit: 9681475ec63d4f69f1018d9d4bd7f5a40c21ca88.

- https://github.com/memex-lab/memex/blob/9681475ec63d4f69f1018d9d4bd7f5a40c21ca88/lib/domain/models/custom_agent_config.dart
- https://github.com/memex-lab/memex/blob/9681475ec63d4f69f1018d9d4bd7f5a40c21ca88/lib/ui/settings/widgets/custom_agent_config_page.dart
- https://github.com/memex-lab/memex/blob/9681475ec63d4f69f1018d9d4bd7f5a40c21ca88/lib/data/services/custom_agent_config_service.dart
- https://github.com/memex-lab/memex/blob/9681475ec63d4f69f1018d9d4bd7f5a40c21ca88/lib/data/services/task_handlers/custom_agent_task_handler.dart
- https://github.com/memex-lab/memex/blob/9681475ec63d4f69f1018d9d4bd7f5a40c21ca88/lib/agent/pure_skill_host_agent/pure_skill_host_agent.dart

The four non-English articles translate the prose but preserve the labeled English test blocks so readers can reproduce the same input and output. To request another output language, change LANGUAGE before running your own trial; that does not turn the English run into a test of every language.
