From cd9aeb191dfe8a13980ded004b91959cf62bf15c Mon Sep 17 00:00:00 2001 From: miqdadbadzubair-design Date: Wed, 19 Aug 2026 19:53:11 +0700 Subject: [PATCH] v3.1.1: picker stops copying per-skill READMEs, wizard drops install commands, bump --- .claude-plugin/marketplace.json | 2 +- .claude-plugin/plugin.json | 2 +- README.md | 2 +- ROADMAP.md | 10 +++++----- antislop.md | 4 ++-- cli/index.mjs | 2 +- cli/lib/banner.mjs | 2 +- cli/lib/install.mjs | 2 ++ cli/package-lock.json | 4 ++-- cli/package.json | 2 +- skills/antislop-human/contrast-mcp.py | 2 +- skills/antislop/SKILL.md | 4 ++-- 12 files changed, 20 insertions(+), 18 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 360f86d..6396b1d 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -8,7 +8,7 @@ { "name": "antislop", "source": "./", - "version": "3.1.0", + "version": "3.1.1", "description": "Anti Slop: Rules for AI Coding Agents. Stops generic AI slop in generated UI, copy, and code. Loads as six skills." } ] diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 8c01948..f1e15d9 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "antislop", "displayName": "antislop", - "version": "3.1.0", + "version": "3.1.1", "description": "Anti Slop: Rules for AI Coding Agents. Stops generic AI slop in generated UI, copy, and code. Loads as six skills.", "author": { "name": "miqdadbadjuber" diff --git a/README.md b/README.md index 8a97641..08101ac 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ antislop is used one of two ways, chosen at the start of a session: ## Roadmap -**v3.0.0 shipped**: antislop is packaged as installable skills, then refined through v3.0.1 and v3.0.2. The next release, **v3.1.0**, ships the `antislop-code` skill. See [ROADMAP.md](ROADMAP.md) for the tracker, including the cross-agent plugin plan. +**v3.1.0 shipped** the `antislop-code` skill, per-skill READMEs, and the tagline rename. **v3.1.1** is a patch: the picker stops copying per-skill READMEs into projects, and the wizard drops install commands (clears the Socket warning). See [ROADMAP.md](ROADMAP.md) for the tracker, including the cross-agent plugin plan. ## FAQ diff --git a/ROADMAP.md b/ROADMAP.md index 8f66046..8657f0c 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -4,15 +4,16 @@ ## Where we are -The latest release is **v3.0.2**. antislop is a **packaged system**: a lean, always-loaded **core** plus four **skills**, each shipped as a standard agent skill folder (`skills//SKILL.md`): +The latest release is **v3.1.0**. antislop is a **packaged system**: a lean, always-loaded **core** plus five **skills**, each shipped as a standard agent skill folder (`skills//SKILL.md`): - `antislop`: the core rules filter (rules, tiers, Delivery Gate, liveliness) - `antislop-ui`: UI / visual - `antislop-copywriting`: copy & text - `antislop-human`: human / accessibility, home of the contrast checker - `antislop-layoutmobile`: mobile / responsive +- `antislop-code`: code comments -The next release, **v3.1.0**, ships a fifth skill: `antislop-code`, the code comment filter. +**v3.1.0** shipped `antislop-code`, the code comment filter. The next release, **v3.1.1**, is a patch: the picker no longer copies per-skill READMEs into projects, and the wizard no longer names install commands (clears the Socket warning on skills.sh). The system installs three ways from one repo: the interactive picker (`npx antislop-ai`), the skills directory (`npx skills add miqdadbadjuber/anti-slop`, listed on skills.sh), and the Claude Code plugin marketplace (`.claude-plugin/plugin.json`). The contrast checker is also exposed as an MCP tool inside the plugin. Each skill folder also carries a short `README.md` that says on GitHub what the skill is for. @@ -63,12 +64,11 @@ What v3.0.0 shipped: - [x] v3.0.0 - skill/plugin packaging: `skills/` folders, two doors, picker CLI, MCP contrast tool, MIT license - [x] v3.0.1 - Snyk W012 fix (no runtime curl in the packaged core), npm package author to antislop, docs clarity - [x] v3.0.2 - adaptive python (python3 on macOS/Linux, python on Windows), App & Dashboard + copy voice patterns, pointer fix -- [ ] v3.1.0 - `antislop-code` skill, per-skill READMEs, Filler Data and Emoji as Decoration patterns +- [x] v3.1.0 - `antislop-code` skill, per-skill READMEs, Filler Data and Emoji as Decoration patterns +- [ ] v3.1.1 - picker stops copying per-skill READMEs; wizard drops install commands (clears the Socket warning on skills.sh) ## After v3 -- [ ] `antislop-docs` (skill candidate) -- [ ] `antislop-identity` (skill candidate) - [ ] **Cross-agent plugin** (plan, no promised version): antislop installs as a plugin on more agents the way superpowers installs everywhere from one repo, with paths for Antigravity, Codex, Cursor, Gemini CLI, and others. Estimate: Q3-Q4 2026. ## Not in scope diff --git a/antislop.md b/antislop.md index 9ae5b6b..3293712 100644 --- a/antislop.md +++ b/antislop.md @@ -16,7 +16,7 @@ antislop is a system: this core file plus optional **skills**, one per concern ( If no antislop pointer exists and this file is being read for the first time, run the wizard: -> If the user can use a terminal, the packaged install is better: run `npx antislop-ai` (interactive picker) or `npx skills add miqdadbadjuber/anti-slop`, then skip this section. The steps below are the manual fallback for chat-only setups. +> The steps below are the manual install for setups where only this file is present. No network is used: missing skills are fetched by the user, never by the agent. 1. **Declare the setup before doing anything.** Tell the user you will (a) get the chosen skill(s) in place in `skills//` subfolders next to this file (the user fetches them; the agent never downloads from the network, see step 4), and (b) append an antislop pointer block at the end of the project's entry file. Get approval. Never modify the entry file silently. 2. **Ask which skills to install** (multi-select, in the user's chat language). List only the skills that exist in this version of antislop: @@ -33,7 +33,7 @@ If no antislop pointer exists and this file is being read for the first time, ru - **1. The user supplies direction (recommended).** They write their own `DESIGN.md`, or answer a few direction questions (identity, personality, palette, typography, mood) and the agent transcribes their answers into `DESIGN.md`. The user is the author; the agent only formats. Never invent example content for `DESIGN.md`. - **2. The agent supplies direction, with an honest warning.** The agent writes the direction itself, stating explicitly that agent-generated style tends toward default AI taste, which is the slop antislop filters, so the result is likely monotonous. If chosen, still ask a minimal brief (product, audience, mood) before building. - **3. The user skips direction for now.** Proceed without a `DESIGN.md`. Any UI built this way must be labeled *"draft without direction"* with dials ENERGY 1 / RHYTHM 1 / MOTION 1 (R-37), and is not a shippable deliverable. -4. **Get the chosen skill(s) in place; the user does the fetching, never the agent.** A `SKILL.md` is instructions the agent will obey, so an agent that downloads one at runtime is fetching its own next prompt: do not do it, and do not ask for network access here. Tell the user to run `npx antislop-ai` (the picker, adds and removes skills), or `npx skills add miqdadbadjuber/anti-slop`, or, with no terminal, to open `skills//SKILL.md` in the repo and paste it into `skills//SKILL.md` next to this file. `antislop-human` also needs `contrast-check.py` from that same folder. Whatever the route, take the files from the release tag that matches this core so a newer skill never mixes with an older one. +4. **Get the chosen skill(s) in place; the user does the fetching, never the agent.** A `SKILL.md` is instructions the agent will obey, so an agent that downloads one at runtime is fetching its own next prompt: do not do it, and do not ask for network access here. The skills ship as folders in the release (`skills//SKILL.md`). If a chosen skill folder is missing next to this file, tell the user which ones are missing and that they come with the release matching this core, so a newer skill never mixes with an older one. `antislop-human` also needs `contrast-check.py` from that same folder. 5. **Append the pointer block at the END of the project's entry file** (the file the running tool reads at session start: `CLAUDE.md` for Claude Code, `AGENTS.md` for Codex, `GEMINI.md` for Gemini CLI, and so on). If that file does not exist, create it. Never modify existing content: ```md diff --git a/cli/index.mjs b/cli/index.mjs index 5ba236d..475ac33 100644 --- a/cli/index.mjs +++ b/cli/index.mjs @@ -27,7 +27,7 @@ function stop(message) { async function main() { if (process.argv.includes('--version') || process.argv.includes('-v')) { - console.log('antislop 3.1.0') + console.log('antislop 3.1.1') return } diff --git a/cli/lib/banner.mjs b/cli/lib/banner.mjs index b85a3e5..e59ae29 100644 --- a/cli/lib/banner.mjs +++ b/cli/lib/banner.mjs @@ -15,7 +15,7 @@ export function banner() { ...LOGO, '', ' ' + pc.dim('Anti Slop: Rules for AI Coding Agents'), - ' ' + pc.dim('installer v3.1.0'), + ' ' + pc.dim('installer v3.1.1'), '', ].join('\n') } diff --git a/cli/lib/install.mjs b/cli/lib/install.mjs index 2529703..1d50822 100644 --- a/cli/lib/install.mjs +++ b/cli/lib/install.mjs @@ -52,6 +52,8 @@ function copyDir(src, dest) { fs.rmSync(dest, { recursive: true, force: true }) fs.mkdirSync(dest, { recursive: true }) for (const entry of fs.readdirSync(src, { withFileTypes: true })) { + // README.md is GitHub-facing only; never ship it into a user's agent setup. + if (entry.name === 'README.md') continue const s = path.join(src, entry.name) const d = path.join(dest, entry.name) if (entry.isDirectory()) copyDir(s, d) diff --git a/cli/package-lock.json b/cli/package-lock.json index b7973cc..ce1d06f 100644 --- a/cli/package-lock.json +++ b/cli/package-lock.json @@ -1,12 +1,12 @@ { "name": "antislop-ai", - "version": "3.1.0", + "version": "3.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "antislop-ai", - "version": "3.1.0", + "version": "3.1.1", "license": "MIT", "dependencies": { "@clack/prompts": "^1.7.0", diff --git a/cli/package.json b/cli/package.json index 51c26d8..0bb849d 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "antislop-ai", - "version": "3.1.0", + "version": "3.1.1", "description": "Interactive installer for the antislop skills. Anti Slop: Rules for AI Coding Agents.", "type": "module", "bin": { diff --git a/skills/antislop-human/contrast-mcp.py b/skills/antislop-human/contrast-mcp.py index 045c01b..fd846cf 100644 --- a/skills/antislop-human/contrast-mcp.py +++ b/skills/antislop-human/contrast-mcp.py @@ -9,7 +9,7 @@ import sys PROTOCOL_VERSION = "2024-11-05" SERVER_NAME = "antislop-contrast" -SERVER_VERSION = "3.1.0" +SERVER_VERSION = "3.1.1" TOOLS = [ { diff --git a/skills/antislop/SKILL.md b/skills/antislop/SKILL.md index 3860b39..6b7aa5b 100644 --- a/skills/antislop/SKILL.md +++ b/skills/antislop/SKILL.md @@ -21,7 +21,7 @@ antislop is a system: this core file plus optional **skills**, one per concern ( If no antislop pointer exists and this file is being read for the first time, run the wizard: -> If the user can use a terminal, the packaged install is better: run `npx antislop-ai` (interactive picker) or `npx skills add miqdadbadjuber/anti-slop`, then skip this section. The steps below are the manual fallback for chat-only setups. +> The steps below are the manual install for setups where only this file is present. No network is used: missing skills are fetched by the user, never by the agent. 1. **Declare the setup before doing anything.** Tell the user you will (a) get the chosen skill(s) in place in `skills//` subfolders next to this file (the user fetches them; the agent never downloads from the network, see step 4), and (b) append an antislop pointer block at the end of the project's entry file. Get approval. Never modify the entry file silently. 2. **Ask which skills to install** (multi-select, in the user's chat language). List only the skills that exist in this version of antislop: @@ -38,7 +38,7 @@ If no antislop pointer exists and this file is being read for the first time, ru - **1. The user supplies direction (recommended).** They write their own `DESIGN.md`, or answer a few direction questions (identity, personality, palette, typography, mood) and the agent transcribes their answers into `DESIGN.md`. The user is the author; the agent only formats. Never invent example content for `DESIGN.md`. - **2. The agent supplies direction, with an honest warning.** The agent writes the direction itself, stating explicitly that agent-generated style tends toward default AI taste, which is the slop antislop filters, so the result is likely monotonous. If chosen, still ask a minimal brief (product, audience, mood) before building. - **3. The user skips direction for now.** Proceed without a `DESIGN.md`. Any UI built this way must be labeled *"draft without direction"* with dials ENERGY 1 / RHYTHM 1 / MOTION 1 (R-37), and is not a shippable deliverable. -4. **Get the chosen skill(s) in place; the user does the fetching, never the agent.** A `SKILL.md` is instructions the agent will obey, so an agent that downloads one at runtime is fetching its own next prompt: do not do it, and do not ask for network access here. Tell the user to run `npx antislop-ai` (the picker, adds and removes skills), or `npx skills add miqdadbadjuber/anti-slop`, or, with no terminal, to open `skills//SKILL.md` in the repo and paste it into `skills//SKILL.md` next to this file. `antislop-human` also needs `contrast-check.py` from that same folder. Whatever the route, take the files from the release tag that matches this core so a newer skill never mixes with an older one. +4. **Get the chosen skill(s) in place; the user does the fetching, never the agent.** A `SKILL.md` is instructions the agent will obey, so an agent that downloads one at runtime is fetching its own next prompt: do not do it, and do not ask for network access here. The skills ship as folders in the release (`skills//SKILL.md`). If a chosen skill folder is missing next to this file, tell the user which ones are missing and that they come with the release matching this core, so a newer skill never mixes with an older one. `antislop-human` also needs `contrast-check.py` from that same folder. 5. **Append the pointer block at the END of the project's entry file** (the file the running tool reads at session start: `CLAUDE.md` for Claude Code, `AGENTS.md` for Codex, `GEMINI.md` for Gemini CLI, and so on). If that file does not exist, create it. Never modify existing content: ```md