Process Inbox
TDesktop-x64/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
Generates synthesis-constraints.json for the Diffmode growth-tactics pipeline by reasoning in-context over the per-run growth-factors.json (LIGHT vector DB) + founder context — the clean-room…
$ npx skills add acogood/diffmode_free --skill lite-constraints -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install acogood/diffmode_free lite-constraints --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/acogood/diffmode_free.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugin/skills/lite-constraints .claude/skills/lite-constraints && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "lite-constraints" agent skill from https://github.com/acogood/diffmode_free/tree/main/plugin/skills/lite-constraints into .claude/skills/lite-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lite-constraints", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/acogood/diffmode_free/tree/main/plugin/skills/lite-constraintsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add acogood/diffmode_free --skill lite-constraints -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install acogood/diffmode_free lite-constraints --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/acogood/diffmode_free.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugin/skills/lite-constraints .agents/skills/lite-constraints && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "lite-constraints" agent skill from https://github.com/acogood/diffmode_free/tree/main/plugin/skills/lite-constraints into .agents/skills/lite-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lite-constraints", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add acogood/diffmode_free --skill lite-constraints -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install acogood/diffmode_free lite-constraints --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/acogood/diffmode_free.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugin/skills/lite-constraints .cursor/skills/lite-constraints && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "lite-constraints" agent skill from https://github.com/acogood/diffmode_free/tree/main/plugin/skills/lite-constraints into .cursor/skills/lite-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lite-constraints", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/acogood/diffmode_free.git --path plugin/skills/lite-constraints--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add acogood/diffmode_free --skill lite-constraints -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install acogood/diffmode_free lite-constraints --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/acogood/diffmode_free.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugin/skills/lite-constraints .gemini/skills/lite-constraints && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "lite-constraints" agent skill from https://github.com/acogood/diffmode_free/tree/main/plugin/skills/lite-constraints into .gemini/skills/lite-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lite-constraints", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install acogood/diffmode_free lite-constraintsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add acogood/diffmode_free --skill lite-constraints -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/acogood/diffmode_free.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugin/skills/lite-constraints .github/skills/lite-constraints && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "lite-constraints" agent skill from https://github.com/acogood/diffmode_free/tree/main/plugin/skills/lite-constraints into .github/skills/lite-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lite-constraints", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add acogood/diffmode_free --skill lite-constraints -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install acogood/diffmode_free lite-constraints --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/acogood/diffmode_free.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugin/skills/lite-constraints .opencode/skills/lite-constraints && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "lite-constraints" agent skill from https://github.com/acogood/diffmode_free/tree/main/plugin/skills/lite-constraints into .opencode/skills/lite-constraints/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lite-constraints", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
lite-constraintsGenerates synthesis-constraints.json for the Diffmode growth-tactics pipeline by reasoning in-context over the per-run growth-factors.json (LIGHT vector DB) + founder context — the clean-room…
Lite Constraints is an agent skill from acogood/diffmode_free. Generates synthesis-constraints.json for the Diffmode growth-tactics pipeline by reasoning in-context over the per-run growth-factors.json (LIGHT vector DB) + founder context — the clean-room, no-Python replacement for the proprietary Python constraints generator. Emits the white-space pairs, mandatory synergy/founder-leverage pools, prohibited (conventional-outcome) combinations, and category-diversity requirements that the synthesis chain reads. Use after growth-factors mining and before synthesis.
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Python. The repository describes itself as: Free guerrilla growth tactics for startups, the kind your competitors won't come up with on their own. Runs in Claude Code or Codex: competitor read, buyer map, and 7 to 9… The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c175a4d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Lite Constraints loads about 2.9k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 1,101 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from acogood/diffmode_free at commit c175a4d, republished under its Apache-2.0 licence (© acogood). 1,101 words, ~2,855 tokens.
.claude/skills/lite-constraints/SKILL.md (or your agent's skills folder).You produce synthesis-constraints.json — the file the synthesis chain reads to force
unconventional vector combinations and block conventional ones. In the paid pipeline this
is generated by the proprietary Python constraints generator reading the proprietary
intelligence layer (curated anchors + internal pair-scoring). Here you reason in-context
over the per-run growth-factors.json + founder constraints to emit the same JSON shape.
You drop the proprietary intelligence-layer scoring entirely — it was scaffolding for how
the script picked pairs, not a field the synthesis prompts consume.
Build constraints only from this run's growth-factors.json + founder-input.md. Do
NOT read anything under tactics_DB/. Every vector ID you reference MUST exist in this
run's growth-factors.json — never invent IDs and never use IDs you remember from the
proprietary DB. Prohibited-combination rules are expressed at the category / theme
level plus generic conventional-outcome patterns (clean-room), not as proprietary
specific pairs.
WS/03-think-tanks/demand-generation/growth-factors.json (the
LIGHT DB — read its vectors and metadata.category_counts).WS/01-diagnostics/founder-input.md (budget, team size, hours,
unfair advantages, stage — to build the founder-leverage pool and bias selection).WS/03-think-tanks/demand-generation/synthesis-constraints.json.diverse_white_space (explore + build read this) — 8-10 cross-category vector PAIRS that
are genuinely unconventional and exclude over-represented "content flywheel"-type
vectors. Each: { "vectors": [id_a, id_b], "reason": "<the emergent angle in plain English>", "source": "white_space" }. Pick pairs whose mechanisms, when combined,
would make a generic marketer say "that's unusual / risky" (not "obviously do that").
mandatory_combinations (explore + build read these pools) — a flat array; each
item has a pool, vectors, reason, priority:
A_white_space (5): the strongest 5 from diverse_white_space.B_synergy (5): high-synergy CROSS-CATEGORY pairs (e.g. Structural +
Resource, Leverage + Positioning, Psychological + Leverage, Structural + Psychological,
Resource + Positioning). reason: name the synergy type.C_founder_leverage (5): pairs that exploit what THIS founder HAS
that's rare — their unfair advantages (technical skill, industry access, network,
domain expertise, existing audience) — within their time and budget. Both vectors
should be transferability "High"; at least one "Emerging". reason: name the asset
it exploits.
priority: must_include for A/B, suggested for C.prohibited_combinations (Step 1's conventional-detection) — category/theme-level
rules that always yield conventional outcomes, each { "pattern": "<theme A> + <theme B>", "vectors_if_present": [<any matching ids from this run, or []>], "reason": "<the conventional mechanism it produces>", "alternative": "<keep one vector, swap the other for an emerging/contrarian one>" }. Always include these generic conventional patterns
(map them onto whatever matching vectors exist this run):
category_diversity_requirements (build reads this) — compute from
growth-factors.json metadata.category_counts:
{ "total_vectors": N, "category_counts": {…}, "minimum_unique_vectors_in_synthesis": {prefix: min}, "max_single_category_pct": 60, "note": "No single category prefix should exceed 60% of vectors used in synthesis output" }.
Minimum rule per prefix — must be satisfiable, or it is worse than no rule at all:
count == 0 → 0. Never 1. A category with no vectors cannot contribute one.min(2, count)min(3, count)The cap is the load-bearing part. Synthesis produces 7-9 tactics carrying 2-3 vectors each, so ~12 distinct vectors is the realistic ceiling and ~18 is the absolute one. A share-of-DB rule (the shape the proprietary script uses against a much larger database) inverts on a 20-40 vector LIGHT DB and demands every vector in it.
Worked example — a real run. 24 vectors:
struct-5,lever-6,resource-6,psych-5,pos-2,conv-0. Shares: 21%, 25%, 25%, 21%, 8%, 0%. Minimums:struct-3,lever-3,resource-3,psych-3,pos-2,conv-0 — sum 14. Over the cap of 12, so shave two from the largest:struct-3,lever-3,resource-2,psych-2,pos-2,conv-0 — sum 12. Satisfiable by an 8-tactic set. (The old share rule produced 5/6/6/5/2/1 — sum 25, i.e. "use every vector plus one that doesn't exist." Build silently violated four of the six and nothing noticed.)
Also emit (lite versions of the script's other fields, used loosely by synthesis explore/build):
anti_patterns (synthesis-build reads this INSTEAD of the proprietary anti-vector tracking) — a
short generic list of demand-gen anti-patterns to reject, each { "pattern": "...", "severity": "HIGH|MEDIUM", "why": "..." }. Always include: fabricated scarcity/urgency;
multi-account astroturfing / fake social proof; fake-door pages for nonexistent
features; product-dev-disguised-as-marketing (Day-1 is engineering); targeting existing
users for upgrades (retention, not acquisition); teaching customers to DIY the product
(cannibalization).
unconventional_anchors — 4-6 of the most "Emerging", high-transferability vectors
from this run, each { "vector": id, "category": "...", "good_partners": [ids], "avoid_partners": [ids of conventional/over-represented vectors], "reason": "..." }.
validation_rules — { "min_white_space": 5, "min_synergy_pairs": 5, "max_from_same_anchor": 2, "unconventional_target_pct": 50 }.
{
"version": "lite-1.0",
"source_note": "Built in-context from the per-run growth-factors.json LIGHT DB. NOT the proprietary intelligence layer.",
"generated_for": { "budget_max": 0, "team_size": "solo|small|full|unknown", "unfair_advantages": [], "hours_per_week": 0, "stage": "..." },
"diverse_white_space": [ { "vectors": ["id_a","id_b"], "reason": "...", "source": "white_space" } ],
"diverse_white_space_stats": { "candidate_vectors": 0, "pairs_emitted": 0, "excluded_theme": "content-flywheel/over-represented" },
"mandatory_combinations": [ { "pool": "A_white_space|B_synergy|C_founder_leverage", "vectors": ["id_a","id_b"], "reason": "...", "priority": "must_include|suggested" } ],
"prohibited_combinations": [ { "pattern": "...", "vectors_if_present": [], "reason": "...", "alternative": "..." } ],
"unconventional_anchors": [ { "vector": "id", "category": "...", "good_partners": ["id"], "avoid_partners": ["id"], "reason": "..." } ],
"anti_patterns": [ { "pattern": "...", "severity": "HIGH", "why": "..." } ],
"validation_rules": { "min_white_space": 5, "min_synergy_pairs": 5, "max_from_same_anchor": 2, "unconventional_target_pct": 50 },
"category_diversity_requirements": { "total_vectors": 0, "category_counts": {}, "minimum_unique_vectors_in_synthesis": {}, "max_single_category_pct": 60, "note": "No single category prefix should exceed 60% of vectors used in synthesis output" }
}founder-input.md into generated_for (budget_max
from "Monthly marketing budget"/MRR; team_size from solo/team; unfair_advantages from
"Rare assets"; hours_per_week from "Hours per week for growth"; stage from metrics).growth-factors.json. Note category spread and which vectors
are Emerging / High transferability (white-space + anchor candidates) vs over-represented
(content-flywheel-like → exclude from white space).
Degraded-DB check: if the vectors collapse into fewer than 5 distinct mechanism
verbs (e.g. 8 of 20 vectors are "publish/write/create"), or a single category holds70% of vectors, mark
"db_quality": "degraded"in the output metadata and widen the pools — relax the "Emerging" requirement for Pool C and allow one extra pair per pool from adjacent categories. This is a warning that changes behavior, not a gate that halts.
diverse_white_space (8-10 cross-category pairs; run each mentally through the
"would a marketer say 'that's unusual'?" test; exclude content-flywheel-type vectors).mandatory_combinations pools (A/B/C as above), using ONLY this
run's IDs. Respect max_from_same_anchor: 2.prohibited_combinations (the generic patterns above, mapped onto matching
run IDs where they exist).anti_patterns, unconventional_anchors, validation_rules.category_diversity_requirements from metadata.category_counts.growth-factors.json.growth-factors.json (no invented /
no proprietary IDs).diverse_white_space ≥ 5 cross-category pairs; no content-flywheel-type vector in it.mandatory_combinations has Pool A (5), Pool B (5), Pool C (5); founder-leverage
pool exploits the founder's rare assets within their time and budget.prohibited_combinations includes the 5 generic conventional patterns.category_diversity_requirements computed from real category_counts,
max_single_category_pct: 60.minimum_unique_vectors_in_synthesis is satisfiable: every zero-count prefix maps to
0, and the sum across prefixes is ≤ 12.anti_patterns present (the clean-room replacement for the proprietary anti-vectors).© acogood, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugin/skills/lite-constraints of acogood/diffmode_free.
Open the folder on GitHubat commit c175a4d
Lite Constraints next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Lite Constraints this skillacogood/diffmode_free | 163 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Process InboxTDesktop-x64/tdesktop | 3k | 1 repos | ~4.3k | Automated safety check: Pass | GPL-3.0 | |
| Process Inboxtelegramdesktop/tdesktop | 33k | — | ~5.4k | Automated safety check: Pass | GPL-3.0 | |
| Itr Walakaranb192/itr-wala | 871 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Tushare Datazillionare/zillionare | 321 | 2 repos | ~2.3k | Automated safety check: Pass | None | |
| Telegrambubbuild/bub | 1.7k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 |
TDesktop-x64/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
telegramdesktop/tdesktop
Process the local ignored ai-tdesktop inbox into durable, independently testable Telegram Desktop task records while task execution worktrees remain active.
karanb192/itr-wala
File Indian income tax returns (ITR) for FY 2025-26 / AY 2026-27.
zillionare/zillionare
面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。
bubbuild/bub
Telegram Bot skill for sending and editing Telegram messages via Bot API.
browser-use/terminal
Direct browser control via the Browser Use Terminal CLI. An agent skill from browser-use/terminal.
acogood/diffmode_free
Parameterized quality reviewer for Diffmode growth-tactics outputs across the whole pipeline.
acogood/diffmode_free
Competitive gap analysis for a founder's product — a Diffmode growth-tactics think-tank research stage (prompt TT-DG-002).
acogood/diffmode_free
Cross-industry tactic transfer for a founder's product — a Diffmode growth-tactics think-tank research stage (prompt TT-DG-001).
acogood/diffmode_free
Comprehensive acquisition-tactics audit for a founder's industry (AI-CMO enrichment ENR-004).
acogood/diffmode_free
Advanced JTBD + audience segmentation for a founder's product (AI-CMO enrichment ENR-001).
acogood/diffmode_free
Deep competitive-intelligence analysis for a founder's product (AI-CMO enrichment ENR-002).
Works with
Generates synthesis-constraints.json for the Diffmode growth-tactics pipeline by reasoning in-context over the per-run growth-factors.json (LIGHT vector DB) + founder context — the clean-room…. Lite Constraints is an agent skill from acogood/diffmode_free.json (LIGHT vector DB) + founder context — the clean-room, no-Python replacement for the proprietary Python constraints generator.
Run `npx skills add acogood/diffmode_free --skill lite-constraints -a claude-code`. Or copy the skill folder (plugin/skills/lite-constraints in acogood/diffmode_free) into .claude/skills/lite-constraints in your project. Claude Code loads it when a task matches its description.
Run `npx skills add acogood/diffmode_free --skill lite-constraints -a codex`. Or copy the skill folder (plugin/skills/lite-constraints in acogood/diffmode_free) into .agents/skills/lite-constraints in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add acogood/diffmode_free --skill lite-constraints -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lite-constraints, .gemini/skills/lite-constraints, .github/skills/lite-constraints and .opencode/skills/lite-constraints in your project.
SKILL.md names no scripts, command-line tools or credentials: Lite Constraints is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Lite Constraints is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Lite Constraints: Process Inbox (TDesktop-x64/tdesktop, 3k stars), Process Inbox (telegramdesktop/tdesktop, 33k stars), Itr Wala (karanb192/itr-wala, 871 stars) and Tushare Data (zillionare/zillionare, 321 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
acogood (a GitHub user) maintains it in acogood/diffmode_free, which has 163 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on August 10, 2026.
Source: acogood/diffmode_free on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.