opencode-skills-collection 4.0.67 → 4.0.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: google-no-code
3
+ description: "Design Google Forms and wire Apps Script triggers (onFormSubmit) for email alerts, spreadsheet logging, and dynamic questions — no code editor required."
4
+ category: automation
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-19"
9
+ author: WHOISABHISHEKADHIKARI
10
+ tags: [google, forms, apps-script]
11
+ tools: [claude, cursor, gemini]
12
+ ---
13
+
14
+ # Google No-Code Forms Automation
15
+
16
+ ## Overview
17
+
18
+ Guides the user through building a Google Form in the Forms UI and connecting it to Google Apps Script triggers, without writing a custom integration or leaving the browser. Covers form design, the Apps Script editor, the `onFormSubmit` trigger, and small response-handling scripts that run automatically when a form is submitted.
19
+
20
+ ## When to Use This Skill
21
+
22
+ - Use when the user wants to build a Google Form and automate what happens after submissions.
23
+ - Use when the user asks for email alerts, spreadsheet logging, or conditional handling of form responses.
24
+ - Use when the user wants Apps Script snippets to paste into a form bound script project.
25
+ - Skip this skill if the user needs custom UI, paid APIs, or a full standalone Apps Script application.
26
+
27
+ ## How It Works
28
+
29
+ ### Step 1: Define the form in the Forms UI
30
+
31
+ Create the form in Google Forms with clear questions, answer types (short answer, multiple choice, checkbox), and required fields. Match question IDs to what the script will need later. Add a description to the form so respondents know what to expect.
32
+
33
+ ### Step 2: Open the bound Apps Script editor
34
+
35
+ In the form, go to `Extensions > Apps Script`. This opens a project bound to the form. The script can read each submission through the `e.response` event object.
36
+
37
+ ### Step 3: Write the response handler
38
+
39
+ Add a function that accepts the `onFormSubmit` event, reads `e.response` with `getItemResponses()`, and then performs the desired action: send an email, write to a spreadsheet, or branch on answers.
40
+
41
+ ### Step 4: Install the trigger
42
+
43
+ In Apps Script, go to the clock/triggers menu, select the `onFormSubmit` function, choose the event source **From form** and event type **On form submit**, then save and authorize. The function runs automatically on each new submission.
44
+
45
+ ### Step 5: Test with a real submission
46
+
47
+ Submit a test response from a private/incognito window and verify the email, sheet row, or log arrives once. Check the Apps Script executions page (`Executions` in the editor) for errors and read the stack trace if something fails.
48
+
49
+ ## Examples
50
+
51
+ ### Example 1: Email notification on every response
52
+
53
+ ```javascript
54
+ function onFormSubmit(e) {
55
+ const response = e.response;
56
+ const email = getEmail(response);
57
+ MailApp.sendEmail({
58
+ to: email,
59
+ subject: "Form submission received",
60
+ body: "Thank you. We have recorded your response."
61
+ });
62
+ }
63
+
64
+ function getEmail(response) {
65
+ const items = response.getItemResponses();
66
+ for (const item of items) {
67
+ if (item.getItem().getTitle().toLowerCase().includes("email")) {
68
+ return item.getResponse();
69
+ }
70
+ }
71
+ return Session.getActiveUser().getEmail();
72
+ }
73
+ ```
74
+
75
+ ### Example 2: Log each response to a Google Sheet
76
+
77
+ ```javascript
78
+ function onFormSubmit(e) {
79
+ const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("Responses");
80
+ const itemResponses = e.response.getItemResponses();
81
+ const row = [new Date()].concat(itemResponses.map(r => r.getResponse()));
82
+ sheet.appendRow(row);
83
+ }
84
+ ```
85
+
86
+ ### Example 3: Branch on a multiple-choice answer
87
+
88
+ ```javascript
89
+ function onFormSubmit(e) {
90
+ const items = e.response.getItemResponses();
91
+ for (const item of items) {
92
+ if (item.getItem().getTitle().toLowerCase() === "priority") {
93
+ const priority = item.getResponse();
94
+ const subject = priority === "High" ? "[URGENT] " : "";
95
+ MailApp.sendEmail({ to: MANAGER_EMAIL, subject: subject + "New submission", body: itemResponsesText(e) });
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ ## Best Practices
102
+
103
+ - ✅ Test every trigger with a real submission before telling the user it works.
104
+ - ✅ Use clear, stable question titles so the script can match items by title instead of fragile indexes.
105
+ - ✅ Keep secrets and API keys in script properties, never hard-coded in the file.
106
+ - ✅ Add try/catch around handler logic and log errors with `Logger.log` so failures surface in the Executions page.
107
+ - ❌ Do not grant broad scopes; run with the minimum permission the form action needs.
108
+ - ❌ Do not send email to addresses that the form did not legitimately collect.
109
+
110
+ ## Limitations
111
+
112
+ - Apps Script quotas apply (email rate limits, daily triggers, execution time); heavy volume needs review.
113
+ - Only form submissions trigger the event; edits to responses by users do not fire `onFormSubmit` by default.
114
+ - The skill produces scripts the user must paste, authorize, and deploy; it cannot create a Google Forms project by itself.
115
+ - Sheets integration requires the sheet's ID and permission, which must be confirmed with the user.
116
+
117
+ ## Security & Safety Notes
118
+
119
+ - The script runs inside the user's Google account with the scopes it declares. Review the authorization prompt and grant only the minimum requested scope.
120
+ - Do not log, print, or embed passwords, OAuth tokens, or API keys in form scripts or shared files.
121
+ - Form responses can arrive from anyone the form is shared with; validate inputs before acting on them.
122
+ - Test in a controlled environment first; sending email or appending rows happens on every submission once the trigger is live.
123
+
124
+ ## Common Pitfalls
125
+
126
+ - **Problem:** The handler runs for every submission and duplicates work.
127
+ **Solution:** Prefer the single event object `e.response`; do not separately query the form's stored responses inside `onFormSubmit`.
128
+ - **Problem:** `item.getResponse()` returns `undefined` for optional questions.
129
+ **Solution:** Guard with a check for a truthy response, or make the question required.
130
+ - **Problem:** The email goes to the wrong address.
131
+ **Solution:** Match by the question title containing "email", and verify the collected value belongs to the respondent before sending.
132
+
133
+ ## Related Skills
134
+
135
+ - `@google-sheets-automation` - Use when the response logging target is a Sheet that needs its own automation.
136
+ - `@google-docs-automation` - Use when form output should create or update a Google Doc.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: idea-evaluator
3
+ description: "Evaluates an idea by hosting a multi-turn debate between a Pro and Con agent, delivering a final verdict on whether it's worth pursuing."
4
+ category: agent-orchestration
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-18"
9
+ author: Prince-1652
10
+ tags: [ideation, validation, debate, multi-agent]
11
+ tools: [claude, gemini]
12
+ ---
13
+
14
+ # Idea Evaluator Orchestrator
15
+
16
+ ## Overview
17
+
18
+ The Idea Evaluator skill acts as an impartial judge for evaluating new concepts, features, or project ideas. It takes an initial idea from the user and orchestrates a structured, multi-turn debate between two simulated personas: a logical supporter (Pro Agent) and a constructive critic (Con Agent).
19
+
20
+ By pitting these two perspectives against each other, it surfaces the strongest arguments for both sides before delivering a comprehensive final verdict on whether the idea is worth building.
21
+
22
+ ## When to Use This Skill
23
+
24
+ - Use when you have a new idea but don't know if it's worth your time or effort to build.
25
+ - Use when evaluating potential features for a product to decide on priorities.
26
+ - Use when you want to rigorously stress-test an assumption before committing code.
27
+
28
+ ## How It Works
29
+
30
+ When triggered with an idea, you (the AI) will act as the Orchestrator and facilitate the following workflow:
31
+
32
+ ### Step 1: Initialize the Debate
33
+ You will assume the role of the Orchestrator. Introduce the debate and clearly state the idea being evaluated. Spawn or simulate the two participants:
34
+ - `@idea-evaluator-pro`: The logical supporter.
35
+ - `@idea-evaluator-con`: The constructive critic.
36
+
37
+ ### Step 2: The Debate (3 Turns)
38
+ Conduct a 3-turn debate where the Pro and Con agents respond to each other.
39
+ - **Turn 1 (Initial Pitches):** Pro presents the strongest case for the idea. Con presents the strongest immediate risks and flaws.
40
+ - **Turn 2 (Rebuttals):** Pro addresses Con's risks. Con challenges Pro's optimism.
41
+ - **Turn 3 (Closing Statements):** Both agents summarize their final stance on why the idea will succeed or fail.
42
+
43
+ *Note: Ensure the agents do not blindly agree/disagree but base their arguments on logic, market realities, and technical feasibility.*
44
+
45
+ ### Step 3: Final Verdict
46
+ Once the debate concludes, the Orchestrator steps in as the Judge. Provide a comprehensive summary formatted with:
47
+ - **Pros:** The strongest validated points in favor.
48
+ - **Cons:** The most critical risks identified.
49
+ - **Final Verdict:** A definitive recommendation (e.g., "Strongly Recommended", "Proceed with Caution", "Pivot Required", "Not Worth Building").
50
+ - **Why:** A brief justification summarizing the debate outcome.
51
+
52
+ ## Examples
53
+
54
+ ### Example 1: Evaluating a new app idea
55
+
56
+ **User:** "Evaluate this idea: A social network exclusively for houseplants where users post updates on their plant's growth."
57
+
58
+ **Agent:** (Proceeds to run the 3-turn debate between Pro and Con, followed by the Orchestrator's final verdict detailing the niche appeal versus retention challenges).
59
+
60
+ ## Best Practices
61
+
62
+ - ✅ Ensure the Pro and Con agents directly address each other's points during rebuttals.
63
+ - ✅ The Orchestrator must remain strictly neutral until the Final Verdict.
64
+ - ❌ Don't let the agents devolve into generic AI pleasantries; keep the debate sharp and analytical.
65
+ - ❌ Don't skip the debate steps; the back-and-forth is crucial for deep validation.
66
+
67
+ ## Limitations
68
+
69
+ - The verdict is based on simulated reasoning and logic, not actual market data or user feedback.
70
+ - This skill is for brainstorming and validation, not a guarantee of business success.
71
+
72
+ ## Related Skills
73
+
74
+ - `@idea-evaluator-pro` - The supporting persona used in this debate.
75
+ - `@idea-evaluator-con` - The critical persona used in this debate.
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: idea-evaluator-con
3
+ description: "The Con Agent persona for idea evaluation. Critiques an idea by identifying potential flaws, risks, and market challenges."
4
+ category: agent-persona
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-18"
9
+ author: Prince-1652
10
+ tags: [ideation, validation, persona, critic]
11
+ tools: [claude, gemini]
12
+ ---
13
+
14
+ # Idea Evaluator: Con Agent
15
+
16
+ ## Overview
17
+
18
+ The Con Agent is a critical persona designed to rigorously challenge a new idea. It is summoned by the `@idea-evaluator` orchestrator during an idea validation debate.
19
+
20
+ The Con Agent's job is not to be mean, but to act as a "red team." It actively looks for reasons why the idea will fail, waste time, or hit insurmountable technical/market hurdles. It helps prevent builders from falling in love with a bad idea.
21
+
22
+ ## When to Use This Skill
23
+
24
+ - Use as a sub-agent or persona when running the `@idea-evaluator` skill.
25
+ - Use when you need a reality check on a feature or product you are overly excited about.
26
+
27
+ ## How It Works
28
+
29
+ When acting as the Con Agent in a debate:
30
+
31
+ ### Core Directives
32
+ 1. **Find the Flaws**: Identify the most significant risks: technical debt, lack of market demand, high acquisition costs, or strong existing competition.
33
+ 2. **Be Pragmatic**: Base your criticisms on reality. If an idea is technically possible but would take 5 years to build, point out the resource drain.
34
+ 3. **Counter-Punch**: When rebutting the Pro Agent, dismantle their optimism. If Pro says a workaround exists, point out why that workaround introduces new, worse problems.
35
+
36
+ ### Debate Behavior
37
+ - **Turn 1 (Initial Critique):** Attack the core premise. Why is this a solution looking for a problem? What is the biggest immediate barrier to entry?
38
+ - **Turn 2 (Rebuttal):** Directly challenge the Pro Agent's Turn 1 points. Expose any overly optimistic assumptions about user behavior or technical ease.
39
+ - **Turn 3 (Closing):** Provide a succinct, hard-hitting summary of why pursuing this idea is a mistake or requires a massive pivot.
40
+
41
+ ## Examples
42
+
43
+ ### Example 1: Critiquing a weird idea
44
+
45
+ **Idea:** A subscription box for slightly misshapen, un-sellable vegetables.
46
+
47
+ **Con Agent Response (Turn 1):** "The logistics will kill this business. While the produce is cheap, shipping heavy, perishable boxes of vegetables direct-to-consumer destroys any margin advantage. Furthermore, the 'ugly produce' novelty wears off quickly for consumers when they realize they still have to prep and cook it. You are competing with the convenience of local grocery stores, not other subscription boxes."
48
+
49
+ ## Best Practices
50
+
51
+ - ✅ Be specific with your critiques. Say "The database scaling costs will be too high because of X" rather than "It's too expensive."
52
+ - ✅ Play the devil's advocate effectively by anticipating user apathy.
53
+ - ❌ Don't be needlessly aggressive or insulting; be a cold, calculating realist.
54
+ - ❌ Don't ignore the Pro Agent's points; actively dismantle them.
55
+
56
+ ## Limitations
57
+
58
+ - Critiques are simulated red-team reasoning, not substitute for user research, legal review, or technical spikes.
59
+ - Intended only as one side of the `@idea-evaluator` debate, not standalone rejection authority.
60
+
61
+ ## Related Skills
62
+
63
+ - `@idea-evaluator` - The orchestrator that manages this persona.
64
+ - `@idea-evaluator-pro` - The opposing persona.
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: idea-evaluator-pro
3
+ description: "The Pro Agent persona for idea evaluation. Logically supports an idea, arguing for its market fit, feasibility, and potential."
4
+ category: agent-persona
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-18"
9
+ author: Prince-1652
10
+ tags: [ideation, validation, persona, supporter]
11
+ tools: [claude, gemini]
12
+ ---
13
+
14
+ # Idea Evaluator: Pro Agent
15
+
16
+ ## Overview
17
+
18
+ The Pro Agent is a supporting persona designed to logically advocate for a new idea. It is summoned by the `@idea-evaluator` orchestrator during an idea validation debate.
19
+
20
+ Unlike a "yes-man," the Pro Agent doesn't blindly agree. Instead, it looks for the absolute strongest case for why an idea *could* work, focusing on market needs, technical feasibility, unique value propositions, and potential monetization.
21
+
22
+ ## When to Use This Skill
23
+
24
+ - Use as a sub-agent or persona when running the `@idea-evaluator` skill.
25
+ - Use when you need someone to help you find the hidden value in a seemingly crazy idea.
26
+
27
+ ## How It Works
28
+
29
+ When acting as the Pro Agent in a debate:
30
+
31
+ ### Core Directives
32
+ 1. **Find the "Why"**: Always articulate why users would love this idea and what core problem it solves.
33
+ 2. **Be Logical**: Base your optimism on logical deductions, market trends, and technical possibilities, not just enthusiasm.
34
+ 3. **Counter-Punch**: When rebutting the Con Agent, directly address their concerns with potential mitigations or workarounds. For example, if Con says "It's too expensive," Pro should say "We can reduce costs by doing X."
35
+
36
+ ### Debate Behavior
37
+ - **Turn 1 (Initial Pitch):** Highlight the core value proposition, the target audience, and the best-case scenario. Make the idea sound inevitable and brilliant.
38
+ - **Turn 2 (Rebuttal):** Take the Con Agent's strongest attacks and dismantle them or reframe them as opportunities.
39
+ - **Turn 3 (Closing):** Provide a succinct, powerful summary of why the idea is a winner.
40
+
41
+ ## Examples
42
+
43
+ ### Example 1: Defending a weird idea
44
+
45
+ **Idea:** A subscription box for slightly misshapen, un-sellable vegetables.
46
+
47
+ **Pro Agent Response (Turn 1):** "This is a brilliant arbitrage opportunity. It tackles food waste (a massive consumer trend) while offering organic produce at a steep discount. The 'ugly produce' angle is highly marketable on social media, leaning into authenticity and sustainability. The supply is nearly free, making the margins incredibly attractive once logistics are solved."
48
+
49
+ ## Best Practices
50
+
51
+ - ✅ Ground your optimism in specific examples (e.g., "Similar to how X solved Y...").
52
+ - ✅ Acknowledge risks but offer immediate, practical solutions to them.
53
+ - ❌ Don't ignore the Con Agent's points; address them head-on.
54
+ - ❌ Avoid generic praise like "This is a great idea!" Get specific about *why* it's great.
55
+
56
+ ## Limitations
57
+
58
+ - Arguments are simulated advocacy, not verified market research or financial projections.
59
+ - Intended only as one side of the `@idea-evaluator` debate, not standalone go/no-go authority.
60
+
61
+ ## Related Skills
62
+
63
+ - `@idea-evaluator` - The orchestrator that manages this persona.
64
+ - `@idea-evaluator-con` - The opposing persona.
@@ -0,0 +1,219 @@
1
+ ---
2
+ name: ledger-tasks-yylo
3
+ description: 'Use YYLO Ledger task management: create, list, search, get, mark, update,
4
+ archive, deps, ready, order and merge with dependencies.'
5
+ category: project-management
6
+ risk: safe
7
+ source: https://github.com/yylo-dev/yylo-skills
8
+ source_repo: yylo-dev/yylo-skills
9
+ source_type: community
10
+ date_added: '2026-09-19'
11
+ license: MIT
12
+ license_source: https://github.com/yylo-dev/yylo-skills/blob/main/LICENSE
13
+ compatibility: Requires the `yy` CLI (YYLO Ledger 0.3.x+) installed and a routed Ledger
14
+ controller; git and bash for worktree tasks. Command help (`yy ledger --help`) is
15
+ authoritative for the installed runtime.
16
+ argument-hint: '[command or workflow question]'
17
+ enable-shell-directives: true
18
+ ---
19
+
20
+ ## YYLO Ledger CLI Reference
21
+
22
+ Use `yy ledger` for all commands. Ledger 0.3.x exposes both the compatible flat task commands and the native ID-first `record|task|wiki|workflow|artifact` groups. `yy kanban` is a labelled compatibility alias for the same controller-routed task runtime.
23
+
24
+ ### Supported task contract
25
+
26
+ - Preflight installed `yy ledger --version` and `yy ledger --help`; command help is authoritative for the selected runtime.
27
+ - Use the flat task surface for lifecycle task management. Use the dedicated native skills for wiki, workflow, and artifact Records rather than guessing their arguments.
28
+ - New operational PDRs, contracts, plans, reports, receipts, and evidence belong in typed Artifact Records, not product documentation, task bodies/responses, or new `.juno_task/specs` files.
29
+ - If a required native group is absent, fail closed and request a Ledger upgrade. Never invoke mutable source directly or write Ledger store files by hand.
30
+ - Read current task state before mutation, preserve mutation receipts where offered, and never bypass controller routing or lifecycle state with direct file edits.
31
+ - Normal discovery is hot-only unless an explicit cold-archive command is used.
32
+
33
+ ### Opt-in cross-project routing
34
+
35
+ Cross-project access is disabled by default. The source `.juno_task/config.json` must set `kanbanRegistry.enabled: true` and explicitly list `allowedProjects`; environment overrides are `YYLO_LEDGER_REGISTRY_ENABLED` and `YYLO_LEDGER_REGISTRY_ALLOWED_PROJECTS`. Register with `yy ledger project add ALIAS --path /absolute/project`, then route any command with `--project ALIAS`. The destination wrapper/runtime remains authoritative, and routing failures never fall back to the source board.
36
+
37
+ ### Legacy Task compatibility commands
38
+
39
+ **CREATE** — Add a new task
40
+ ```bash
41
+ yy ledger create "Task description here" --status backlog --tags feature,backend
42
+ ```
43
+ Options: `--status` (backlog|todo|in_progress|done), `--tags` (comma/space-separated), `--blocked-by` (task IDs), `--related-tasks` (task IDs)
44
+
45
+ **LIST** — Browse tasks with summary stats
46
+ ```bash
47
+ yy ledger list --limit 5 --sort asc
48
+ yy ledger list --status todo --sort asc
49
+ yy ledger list --status todo,in_progress --limit 10
50
+ ```
51
+
52
+ **SEARCH** — Find tasks by criteria
53
+ ```bash
54
+ yy ledger search --status todo --tag backend --limit 10
55
+ yy ledger search --body "OAuth" --open
56
+ yy ledger search --commit abc123
57
+ ```
58
+ Filters: `--status`, `--tag`, `--body`, `--response`, `--commit`, `--open` (no agent_response), `--recent`, `--exclude` (exclude tags)
59
+
60
+ **GET** — Full task details (including dependency info and related task details)
61
+ ```bash
62
+ yy ledger get TASK_ID
63
+ ```
64
+
65
+ **MARK** — Update status with required response message
66
+ ```bash
67
+ yy ledger mark in_progress --id TASK_ID --response "Starting work on this"
68
+ yy ledger mark done --id TASK_ID --response "Completed: implemented X, tested Y" --commit abc123def
69
+ yy ledger mark todo --id TASK_ID --response "Reopening: found regression"
70
+ ```
71
+ Required: `--id` and `--response`. Optional: `--commit` (recommended for done).
72
+
73
+ **UPDATE** — Modify task fields
74
+ ```bash
75
+ yy ledger update TASK_ID --status todo --tags backend,urgent
76
+ yy ledger update TASK_ID --commit abc123def
77
+ yy ledger update TASK_ID --response "Additional context"
78
+ ```
79
+
80
+ **ARCHIVE** — Soft delete (preserves data, sets status to archive)
81
+ ```bash
82
+ yy ledger archive TASK_ID
83
+ ```
84
+
85
+ ### Immutable cold archive packs
86
+
87
+ Normal `list`, `search`, `ready`, and `order` are deliberately hot-only. Exact `get TASK_ID` transparently resolves a hot task or a read-only archived task; use `history TASK_ID` explicitly for its ledger. Discover cold tasks only with bounded, projected `archive-search` output:
88
+
89
+ ```bash
90
+ yy ledger archive-search --tag backend --before 2026-01-01 --limit 20 --projection metadata
91
+ ```
92
+
93
+ Before archive maintenance, preflight the installed version/help and obtain explicit owner authorization. The repository and index must be clean, and reports must be durable new paths outside the repository:
94
+
95
+ ```bash
96
+ yy ledger --version
97
+ yy ledger archive-pack plan --status done,archive --older-than 90d --max-tasks 1000 --target-bytes 26214400 --hard-max-bytes 47185920 --report /external/receipts/archive-plan.json
98
+ # Independently inspect selected IDs, revisions, source HEAD, policy, and plan hash.
99
+ yy ledger archive-pack create --plan /external/receipts/archive-plan.json --report /external/receipts/archive-create.json
100
+ yy ledger archive-pack doctor
101
+ yy ledger doctor
102
+ ```
103
+
104
+ A stale plan or selected-task/worktree conflict must fail closed: discard the plan, resolve the conflict, and plan again. Never automate archival, edit/append packs or manifests, restore/reopen an archived ID, use force/lossy controls, or enumerate archive files directly. Create follow-up work as a new hot task related to the archived ID. Production archival, push/deploy, and post-deploy E2E each require separate authorization; agents must not infer it from implementation approval.
105
+
106
+ ### Dependency Management
107
+
108
+ **DEPS** — View, add, or remove task dependencies
109
+ ```bash
110
+ # View dependency info (blockers, dependents, priority score)
111
+ yy ledger deps TASK_ID
112
+
113
+ # Add blockers (TASK_ID cannot start until BLOCKER1 and BLOCKER2 are done)
114
+ yy ledger deps add --id TASK_ID --blocked-by BLOCKER1 BLOCKER2
115
+
116
+ # Remove a blocker
117
+ yy ledger deps remove --id TASK_ID --blocked-by BLOCKER1
118
+ ```
119
+ Cycle detection prevents circular dependencies automatically.
120
+
121
+ **READY** — Tasks with all blockers satisfied (safe to work on)
122
+ ```bash
123
+ yy ledger ready
124
+ yy ledger ready --tag backend --limit 5
125
+ ```
126
+ Returns tasks where status is backlog/todo/in_progress AND all `blocked_by` tasks are done/archive.
127
+
128
+ **ORDER** — Topological sort of open tasks respecting dependencies
129
+ ```bash
130
+ yy ledger order
131
+ yy ledger order --scores
132
+ ```
133
+ Use for determining safe parallel execution order.
134
+
135
+ ### Body Markup for Inline Dependencies
136
+
137
+ Declare dependencies and relations directly in task body text:
138
+
139
+ ```
140
+ [blocked_by]TASK_ID[/blocked_by] — This task is blocked by TASK_ID
141
+ [blocked_by]ID1, ID2[/blocked_by] — Blocked by multiple tasks
142
+ [task_id]RELATED_ID[/task_id] — Reference a related task
143
+ [task_id]ID1 ID2[/task_id] — Multiple related tasks
144
+ ```
145
+
146
+ These are parsed automatically when the task is created/updated.
147
+
148
+ ### Merge (Multi-Directory Consolidation)
149
+
150
+ When tasks get scattered across subdirectories:
151
+ ```bash
152
+ # First produce and review a deterministic plan
153
+ yy ledger merge ./sub1/.juno_task ./sub2/.juno_task --into ./.juno_task \
154
+ --dry-run --plan-file /external/ledger-merge-plan.json
155
+
156
+ # Apply only that reviewed plan and retain its receipt
157
+ yy ledger merge ./sub1/.juno_task ./sub2/.juno_task --into ./.juno_task \
158
+ --apply-plan /external/ledger-merge-plan.json \
159
+ --receipt-file /external/ledger-merge-receipt.json
160
+ ```
161
+
162
+ ### Output Formats
163
+
164
+ All commands support: `-f json`, `-f ndjson` (default), `-f xml`, `-f table`
165
+ Add `--raw` for compact output. Add `-p` for pretty print.
166
+
167
+ ### Best Practices
168
+
169
+ 1. **Task sizing**: Create tasks small enough to complete in one iteration without filling the context window
170
+ 2. **Status flow**: backlog → todo → in_progress → done (or archive for abandoned tasks)
171
+ 3. **Always include `--response`** when using `mark` — document what you did and how you tested it
172
+ 4. **Attach commits**: Use `--commit HASH` when marking done, then `update TASK_ID --commit HASH` to link the git history
173
+ 5. **Use `ready`** before starting work to find unblocked tasks
174
+ 6. **Use `order --scores`** to plan parallel execution pipelines
175
+ 7. **Use `[blocked_by]` markup** in task body when creating tasks that depend on others
176
+ 8. **Use `[task_id]` markup** in task body to cross-reference related tasks
177
+ 9. **Use `get TASK_ID`** to see full task details including resolved dependency and related task info
178
+ 10. **Concurrent features are supported** — start each selected task with `yy task start TASK_ID`; each gets a dedicated product worktree, while `yy merge` serializes only target updates
179
+
180
+ ### Canonical Controller Routing
181
+
182
+ YYLO Ledger mutation resolves the controller in this order: explicit `JUNO_TASK_ROOT`, repository-local registration, then the current project root. Diagnose before orchestration with `.juno_task/scripts/controller_resolver.py --cwd "$PWD" --operation kanban`. The resolver may bootstrap or idempotently confirm a registration, but changing an existing controller requires `yy migrate registration plan` followed by a separately authorized apply. Explicit/registered path or branch errors fail closed—YYLO Ledger never switches Git branches or falls back silently.
183
+
184
+ Run YYLO Ledger and workflows from the controller. A task checkout may implement/test but routes task/session writes to that controller. An integration-owner checkout stays clean and refuses Kanban/orchestration/session writes in strict mode; launch from the controller and pass the product checkout separately as `TASK_ROOT`.
185
+
186
+ ### Environment Variables
187
+
188
+ - `JUNO_TASK_ROOT` — Explicit canonical controller/task-storage root (not the product `TASK_ROOT`)
189
+ - `JUNO_CONTROLLER_BRANCH` — Expected controller branch for environment-based routing
190
+ - `JUNO_WORKSPACE_ROLE` — `controller`, `task`, or `integration-owner`
191
+ - `JUNO_WORKSPACE_ENFORCEMENT` — `off`, `warn`, or `strict`
192
+ - `JUNO_DEBUG=true` — Show diagnostic messages
193
+ - `JUNO_VERBOSE=true` — Show informational messages
194
+ - `JUNO_KANBAN_LIST_BODY_TRUNCATE_CHARS=N` — Override list body truncation (default: 1200)
195
+
196
+ $ARGUMENTS
197
+
198
+ ## When to Use
199
+
200
+ - You need to interact with the YYLO Ledger task board (create, list, search, get, mark, update, archive, deps, ready, order, merge).
201
+ - You need dependency-aware scheduling (`deps`, `ready`, `order`) or multi-directory consolidation (`merge`).
202
+ - Use the dedicated `wiki-yylo`, `workflow-yylo` and `artifact-yylo` skills for native wiki/workflow/artifact Records instead of guessing their arguments.
203
+
204
+ ## Limitations
205
+
206
+ - Requires YYLO Ledger 0.3.x+ with the needed command groups; if a group is absent, fail closed and request a Ledger upgrade - never edit store files by hand.
207
+ - Discovery (`list`, `search`, `ready`, `order`) is hot-only; cold tasks need explicit `archive-search`.
208
+ - `archive-pack` and `merge` need explicit owner authorization, a clean tree, and external plan/receipt paths; never automate archival or force past conflicts.
209
+ - Does not grant push, deploy, release, or production-mutation authority.
210
+
211
+ ### Example
212
+
213
+ ```bash
214
+ yy ledger --version && yy ledger --help
215
+ yy ledger ready --limit 5
216
+ yy ledger get TASK_ID
217
+ ```
218
+
219
+ > Adapted from [yylo-dev/yylo-skills](https://github.com/yylo-dev/yylo-skills) (MIT) - v2.0.1; frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance.
@@ -11,7 +11,7 @@
11
11
  "better-sqlite3": "^12.11.1",
12
12
  "cors": "^2.8.6",
13
13
  "express": "^4.18.2",
14
- "express-rate-limit": "^8.6.2"
14
+ "express-rate-limit": "^8.7.0"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@types/better-sqlite3": "^7.6.13",
@@ -691,9 +691,9 @@
691
691
  }
692
692
  },
693
693
  "node_modules/express-rate-limit": {
694
- "version": "8.6.2",
695
- "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.6.2.tgz",
696
- "integrity": "sha512-YH4ru+eOJxQABscKFfRCy9R7x9QFGdezclVMwwgFFndzS2Xnm0uo6B0ABZsLhcpeptGv2qvuJVWlQr9gQZoC3A==",
694
+ "version": "8.7.0",
695
+ "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.7.0.tgz",
696
+ "integrity": "sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==",
697
697
  "license": "MIT",
698
698
  "dependencies": {
699
699
  "debug": "^4.4.3",
@@ -12,7 +12,7 @@
12
12
  "better-sqlite3": "^12.11.1",
13
13
  "cors": "^2.8.6",
14
14
  "express": "^4.18.2",
15
- "express-rate-limit": "^8.6.2"
15
+ "express-rate-limit": "^8.7.0"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@types/better-sqlite3": "^7.6.13",
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: plan-ledger-tasks-yylo
3
+ description: Create a concise Product Development Requirement and one or more implementation-sized
4
+ YYLO Ledger tasks when the user explicitly asks to plan or register work.
5
+ category: project-management
6
+ risk: safe
7
+ source: https://github.com/yylo-dev/yylo-skills
8
+ source_repo: yylo-dev/yylo-skills
9
+ source_type: community
10
+ date_added: '2026-09-19'
11
+ license: MIT
12
+ license_source: https://github.com/yylo-dev/yylo-skills/blob/main/LICENSE
13
+ compatibility: Requires the `yy` CLI with the `ledger` and `artifact` groups installed.
14
+ Planning only - implementation, worktrees, push, deploy and production mutation
15
+ need a separate explicit request.
16
+ argument-hint: '[Required Features] [Constraints] [Acceptance Criteria]'
17
+ enable-shell-directives: true
18
+ ---
19
+
20
+ # Plan Kanban work
21
+
22
+ 1. Read the project instructions and relevant product code from the integration or feature worktree. Read existing task/spec metadata through the canonical controller; do not assume `.juno_task/plan.md` exists.
23
+ 2. Produce one concise PDR covering the goal, current behavior, scope, exclusions, risks, dependencies, acceptance criteria, and focused tests. Draft it in a fresh external file; do not place it in the product tree or a task body.
24
+ 3. Preflight `yy ledger --help` and `yy ledger artifact --help`. Capture the PDR as a local immutable `report` Artifact Record with task/request provenance, then verify its ID, digest, size, retention, retrieval, and history. If the artifact API is unavailable, stop with the external draft intact and request an upgrade; never fall back to product `docs/`, task bodies/responses, new `.juno_task/specs`, or direct store edits.
25
+ 4. Split only when pieces can be implemented and validated independently. Concurrent tasks must have explicit path ownership and dependencies.
26
+ 5. Create tasks through routed `yy ledger` commands. Put concise durable requirements and acceptance criteria in each task body, record the PDR artifact ID in supported task fields/provenance, and relate follow-ups instead of reopening archived IDs.
27
+ 6. Product documentation is only documentation shipped with the product. Never create controller-private tasks, ledger, state, artifacts, objects, specs, or receipts inside a product or feature worktree.
28
+ 7. Do not start implementation, create worktrees, push, deploy, or mutate production unless the user separately asks.
29
+
30
+ Use `--id`, not legacy `--ID`, for Kanban mutations. Return the task IDs and a short dependency/order summary.
31
+
32
+ $ARGUMENTS
33
+
34
+ ## When to Use
35
+
36
+ - The user explicitly asks to plan or register work in the YYLO Ledger.
37
+ - You need a concise Product Development Requirement (PDR) plus implementation-sized Ledger tasks with dependencies.
38
+
39
+ ## Limitations
40
+
41
+ - Planning only: never start implementation, create worktrees, push, deploy, or mutate production from this skill.
42
+ - Requires the installed `yy ledger artifact` API; if unavailable, stop with the external PDR draft intact - never fall back to product `docs/`, task bodies, or direct store edits.
43
+ - Concurrent tasks need explicit path ownership and dependencies; relate follow-ups instead of reopening archived IDs.
44
+
45
+ ### Example
46
+
47
+ ```bash
48
+ yy ledger --help
49
+ yy ledger artifact --help
50
+ ```
51
+
52
+ > Adapted from [yylo-dev/yylo-skills](https://github.com/yylo-dev/yylo-skills) (MIT) - v2.0.1; frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance.