# if you look in my task notes you will see one #setup has been added today. what is it?
## Retrieval Notes
- Session id: `019df248-2939-7e11-8de6-81ed0cc23539`
- Source: `Codex raw session`
- Last activity: `2026-05-04T09:26:17.059Z`
- Model: `gpt-5.5`
- CWD: `/Users/nickyoung`
## My Notes
<!-- Add your notes here. This section is preserved across syncs. -->
## Conversation
### User
if you look in my task notes you will see one #setup has been added today. what is it?
### Assistant
I’ll check the TaskNotes route for today’s `#setup` item and keep this narrow: find the task added today, report what it is.
### Assistant
I’m using the TaskNotes skill here, since this is the plugin-backed task store rather than a plain markdown search. I’m going to query the TaskNotes API first, then filter for today and `setup`.
### Assistant
That helper isn’t at `/Users/nickyoung/scripts/tasks.py`, so I’m locating the active TaskNotes script or API wrapper before falling back to reading raw task files.
### Assistant
The active vault is `My Obsidian Vault`. Since the CLI can run Obsidian-side JavaScript cleanly, I’m going to ask the metadata cache for markdown files in `TaskNotes` with `setup` tags and today’s creation time.
### Assistant
The newest `setup` task in the `TaskNotes/Tasks` folder from the cached file list is from April 30, so I’m widening the check to every markdown task-like file with a `setup` tag or body `#setup` created/modified on May 4, 2026.
### Assistant
Only `Google Tasks.md` matches the May 4 + `#setup` condition, which suggests the item may have come in through the synced Google Tasks note rather than a standalone TaskNotes file. I’m reading just that note now and extracting the `#setup` line.
### Assistant
The `#setup` item added today, May 4, 2026, is:
“Develop skill: forbid example lists in prose”
Description: build a skill that detects and blocks three-to-five-item example enumerations stuffed inside paragraphs when drafting or revising prose, because that LLM habit is something you hate.
I found it in [Google Tasks.md](/Users/nickyoung/My%20Obsidian%20Vault/Google%20Tasks.md), synced at 11:14.
*Questa è una piccola regola di stile trasformata in infrastruttura di scrittura.*
### User
you are right, the task was the following and i want you to do it now. The problem I'm having is that whenever you do any writing for me, I spend half my time trying to stop you doing big long lists of examples. Basically, I've been thinking that a skill that I can activate whenever I write with you, which forbids this sort of construction, would be the best way to stop you doing it. Maybe you have other ideas though. What do you think? If you think the skill is the best way to do it, though then make sure when you make it you consult best practices as to how to make skills and use the skill making skill and make both a codex version and a clawed code version.
### Assistant
I’ll do this as cross-runtime skill work: first I’m loading the skill-making instructions, the Agent State Vault operational map, and the cross-runtime guidance so the Codex and Claude Code versions land in the right shape.
### Assistant
The shape looks like a shared norm with two skill packages, not a hook-level enforcement yet. I’m checking the current system map and the local skill layouts now, then I’ll create the smallest useful skill rather than a sprawling style doctrine.
### Assistant
I’ve got the design choice now: a skill is the right first layer because you want something opt-in during writing, and it can travel across Codex and Claude Code without forcing every chat into the rule. If it keeps recurring even with the skill active, the next layer would be a hook or global voice rule, but that feels heavier than the task asks for.
### Assistant
Codex skill scaffolding is in place. I’m replacing the template with a lean operational rule set now, then I’ll mirror the same behavior into Claude Code’s skills directory.
### Assistant
Both skill files are written. I’m validating the Codex package structure and doing a quick live check of the Claude-side frontmatter, since Claude has a slightly richer skill metadata format.
### Assistant
The validator script itself is present, but the default `python3` here lacks `PyYAML`, so that validation failed before reading the skill. I’m checking the bundled runtime and will either rerun it there or do a direct structural check without installing anything.
### Assistant
The YAML parses cleanly on both sides. One live-system detail matters: Codex has a sync-safe config repo, so I’m checking whether this new live skill also needs to be mirrored into `~/.codex-config/skills` for portability.
### Assistant
Codex’s portable config repo does mirror live skills, so I’m adding the new skill there too rather than leaving it desktop-local. I’m keeping that edit scoped to the new skill folder, not running the broad export script.
### Assistant
The portable Codex copy is in place. I’m doing the final live verification now: existence, parseability, runtime versions, and the sync-repo status so the handoff note is factual rather than vibes.
### Assistant
The files are verified. Since this came from a Google Task and the requested work is now done, I’m going to mark that task complete through the gws task route rather than editing the synced note by hand.
### Assistant
I’m not going to complete the Google Task silently because the Google workflow rules require confirmation for writes. I’m recording the system change in the Agent State Vault now, including the fact that laptop propagation has not been checked.
### Assistant
Yes, I think the skill was the right first layer. I made it as an opt-in writing constraint, with the thought that a hook/global rule would be heavier and only worth adding if this keeps slipping through.
Created:
[Codex live skill](/Users/nickyoung/.codex/skills/no-example-lists/SKILL.md)
[Codex portable config copy](/Users/nickyoung/.codex-config/skills/no-example-lists/SKILL.md)
[Claude Code skill](/Users/nickyoung/.claude/skills/no-example-lists/SKILL.md)
It triggers on writing/revision work and phrases like “no example lists,” “avoid triplets,” or “this sounds too LLM.” It tells the agent to develop one example properly or remove the catalogue entirely, while allowing real lists when you explicitly ask for them or the format requires them.
Verified: YAML frontmatter parses for all three skill files. The Codex validator script could not run because this Python environment lacks `PyYAML`, so I did a direct YAML parse check instead. I also updated the Agent State Vault runtime notes and handoff log. I left the Google Task open because the gws rules require explicit confirmation before changing task status.
*La regola ora vive dove serve: non come preferenza vaga, ma come vincolo attivabile durante la scrittura.*