opencode-skills-collection 4.0.61 → 4.0.63

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.
package/README.md CHANGED
@@ -9,6 +9,7 @@
9
9
 
10
10
  [![npm version](https://img.shields.io/npm/v/opencode-skills-collection?style=for-the-badge&color=cb3837&label=npm)](https://www.npmjs.com/package/opencode-skills-collection)
11
11
  [![npm downloads](https://img.shields.io/npm/dm/opencode-skills-collection?style=for-the-badge&color=orange)](https://www.npmjs.com/package/opencode-skills-collection)
12
+ [![HOL Guard](https://img.shields.io/endpoint?url=https%3A%2F%2Fhol.org%2Fapi%2Fregistry%2Fbadges%2Fplugin%3Fslug%3Dfrancostino%252Fopencode-skills-collection%26metric%3Dtrust&style=for-the-badge)](https://hol.org/go/guard/rawsar?dest=%2Fguard%2Fbilling%3Fpromo%3DGUARD20-RAWSAR%23upgrade&link_id=02c248f9-50d5-4c60-abf0-ca80d2604a6b&utm_source=insights_share&utm_medium=affiliate_cta&utm_campaign=share20)
12
13
  [![license](https://img.shields.io/github/license/FrancoStino/opencode-skills-collection?style=for-the-badge&color=blue)](./LICENSE)
13
14
  [![zread](https://img.shields.io/badge/Documentation-_.svg?style=for-the-badge&color=00b0aa&labelColor=000000&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuOTYxNTYgMS42MDAxSDIuMjQxNTZDMS44ODgxIDEuNjAwMSAxLjYwMTU2IDEuODg2NjQgMS42MDE1NiAyLjI0MDFWNC45NjAxQzEuNjAxNTYgNS4zMTM1NiAxLjg4ODEgNS42MDAxIDIuMjQxNTYgNS42MDAxSDQuOTYxNTZDNS4zMTUwMiA1LjYwMDEgNS42MDE1NiA1LjMxMzU2IDUuNjAxNTYgNC45NjAxVjIuMjQwMUM1LjYwMTU2IDEuODg2NjQgNS4zMTUwMiAxLjYwMDEgNC45NjE1NiAxLjYwMDFaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00Ljk2MTU2IDEwLjM5OTlIMi4yNDE1NkMxLjg4ODEgMTAuMzk5OSAxLjYwMTU2IDEwLjY4NjQgMS42MDE1NiAxMS4wMzk5VjEzLjc1OTlDMS42MDE1NiAxNC4xMTM0IDEuODg4MSAxNC4zOTk5IDIuMjQxNTYgMTQuMzk5OUg0Ljk2MTU2QzUuMzE1MDIgMTQuMzk5OSA1LjYwMTU2IDE0LjExMzQgNS42MDE1NiAxMy43NTk5VjExLjAzOTlDNS42MDE1NiAxMC42ODY0IDUuMzE1MDIgMTAuMzk5OSA0Ljk2MTU2IDEwLjM5OTlaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik0xMy43NTg0IDEuNjAwMUgxMS4wMzg0QzEwLjY4NSAxLjYwMDEgMTAuMzk4NCAxLjg4NjY0IDEwLjM5ODQgMi4yNDAxVjQuOTYwMUMxMC4zOTg0IDUuMzEzNTYgMTAuNjg1IDUuNjAwMSAxMS4wMzg0IDUuNjAwMUgxMy43NTg0QzE0LjExMTkgNS42MDAxIDE0LjM5ODQgNS4zMTM1NiAxNC4zOTg0IDQuOTYwMVYyLjI0MDFDMTQuMzk4NCAxLjg4NjY0IDE0LjExMTkgMS42MDAxIDEzLjc1ODQgMS42MDAxWiIgZmlsbD0iI2ZmZiIvPgo8cGF0aCBkPSJNNCAxMkwxMiA0TDQgMTJaIiBmaWxsPSIjZmZmIi8%2BCjxwYXRoIGQ9Ik00IDEyTDEyIDQiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPgo8L3N2Zz4K&logoColor=ffffff)](https://zread.ai/FrancoStino/opencode-skills-collection)
14
15
  </div>
@@ -20,6 +21,11 @@
20
21
 
21
22
  ---
22
23
 
24
+ ## Sponsor
25
+ [![Sponsored by GitAds](https://gitads.dev/v1/ad-serve?source=francostino/opencode-skills-collection@github)](https://gitads.dev/v1/ad-track?source=francostino/opencode-skills-collection@github)
26
+
27
+ ---
28
+
23
29
  ## Overview
24
30
 
25
31
  **OpenCode Skills Collection** ships a pre-bundled snapshot of 1595+ universal skills for the OpenCode.
@@ -255,9 +261,6 @@ To use the latest beta version, update your `~/.config/opencode/opencode.json`:
255
261
 
256
262
  [MIT ©](./LICENSE)
257
263
 
258
- ## GitAds Sponsored
259
- [![Sponsored by GitAds](https://gitads.dev/v1/ad-serve?source=francostino/opencode-skills-collection@github)](https://gitads.dev/v1/ad-track?source=francostino/opencode-skills-collection@github)
260
-
261
264
  ## Star History
262
265
 
263
266
  <a href="https://www.star-history.com/?repos=FrancoStino%2Fopencode-skills-collection&type=date&legend=top-left">
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "updatedAt": "2026-09-13T01:46:17.010Z",
3
+ "updatedAt": "2026-09-15T02:11:34.766Z",
4
4
  "entries": [
5
5
  "00-andruia-consultant",
6
6
  "007",
@@ -954,6 +954,7 @@
954
954
  "gitlab-automation",
955
955
  "gitlab-ci-patterns",
956
956
  "gitops-workflow",
957
+ "glasser",
957
958
  "global-chat-agent-discovery",
958
959
  "gmail-automation",
959
960
  "go-concurrency-patterns",
@@ -1239,6 +1240,7 @@
1239
1240
  "marketing-ideas",
1240
1241
  "marketing-plan",
1241
1242
  "marketing-psychology",
1243
+ "marketplace-rbac-audit",
1242
1244
  "markstream-angular",
1243
1245
  "markstream-custom-components",
1244
1246
  "markstream-install",
@@ -1517,6 +1519,7 @@
1517
1519
  "product-marketing-context",
1518
1520
  "production-audit",
1519
1521
  "production-code-audit",
1522
+ "production-runtime-certification",
1520
1523
  "production-scheduling",
1521
1524
  "professional-proofreader",
1522
1525
  "programmatic-seo",
@@ -0,0 +1,209 @@
1
+ ---
2
+ name: glasser
3
+ description: "Search, inspect, and run third-party data APIs through one CLI when the environment has no suitable integration."
4
+ category: data
5
+ risk: critical
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-12"
9
+ author: adriansurething
10
+ tags: [api, data, search, enrichment, marketing, research, cli]
11
+ tools: [claude, cursor, codex, gemini]
12
+ ---
13
+
14
+ # Glasser
15
+
16
+ ## Overview
17
+
18
+ Glasser is a commercial API broker that exposes third-party data providers
19
+ through one CLI and one account. Use it to fill a data gap after checking the
20
+ environment's free tools and the user's existing integrations. Provider output
21
+ keeps its native structure, so inspect the selected endpoint before every run.
22
+
23
+ This skill was contributed by a member of the Glasser team.
24
+
25
+ ## When to Use This Skill
26
+
27
+ - Use when a task needs current web, news, search, social, business, people,
28
+ places, shopping, image, video, or enrichment data that available tools
29
+ cannot supply.
30
+ - Use when the user wants pay-per-call access without creating a separate
31
+ account with the underlying provider.
32
+ - Use for marketing and research workflows that need structured evidence from
33
+ a named data provider.
34
+ - Prefer the user's explicit provider choice, existing API keys, installed
35
+ integrations, and free tools before Glasser.
36
+
37
+ ## How It Works
38
+
39
+ ### Step 1: Check Availability and Authentication
40
+
41
+ Use the CLI only if it is already installed or the user has approved its
42
+ installation under the host environment's software-installation policy.
43
+ Installation instructions are maintained at
44
+ <https://glasser.ai/SKILL.md>. Do not download or install executable code
45
+ without the review and approval required by the current environment.
46
+
47
+ Check the CLI and account:
48
+
49
+ ```bash
50
+ glasser --version
51
+ glasser balance
52
+ ```
53
+
54
+ If authentication is missing in an interactive session, run `glasser login`.
55
+ It opens a browser-based device flow. Relay the URL and code printed by the CLI
56
+ and wait for the command to finish. Never ask the user to paste a Key into chat.
57
+
58
+ For unattended environments, the user can configure `GLASSER_API_KEY` through
59
+ the environment's secret manager. Never write it to a project file or include
60
+ it in a command argument.
61
+
62
+ ### Step 2: Discover Candidate Endpoints
63
+
64
+ Search by capability instead of guessing a provider or endpoint:
65
+
66
+ ```bash
67
+ glasser search -q "Google search results"
68
+ glasser search -q "company enrichment"
69
+ glasser search -q "Reddit posts and comments"
70
+ ```
71
+
72
+ Compare the provider, endpoint, and listed price. Search results are ranked by
73
+ relevance; rank is not a quality or price recommendation.
74
+
75
+ ### Step 3: Inspect the Contract
76
+
77
+ Inspect the exact endpoint before constructing input:
78
+
79
+ ```bash
80
+ glasser inspect -p serper -e /search
81
+ ```
82
+
83
+ Record:
84
+
85
+ - the current price and all charge clauses;
86
+ - required and optional input fields;
87
+ - fields that control result volume;
88
+ - run mode and timeout;
89
+ - the provider that will receive the request.
90
+
91
+ Schemas, prices, and charge clauses can change. The live `inspect` result is
92
+ the contract for the next run.
93
+
94
+ ### Step 4: Authorize the Paid Scope
95
+
96
+ Only `run` spends the workspace balance. Before the first paid call, show the
97
+ user the provider, endpoint, per-call price, charge exceptions, input scope,
98
+ and requested result volume. Wait for approval unless the user already gave an
99
+ exact scope or budget that covers the call.
100
+
101
+ Create the provider-native JSON input in a file after inspection. A file avoids
102
+ shell-quoting errors and keeps the request reviewable. Do not include unrelated
103
+ personal, confidential, or credential data.
104
+
105
+ ### Step 5: Run and Recover Safely
106
+
107
+ Run the approved request:
108
+
109
+ ```bash
110
+ glasser run -p serper -e /search -f request.json --wait
111
+ ```
112
+
113
+ The CLI prints an Idempotency-Key. If a timeout or transport failure leaves the
114
+ outcome uncertain, repeat the request with that same key:
115
+
116
+ ```bash
117
+ glasser run -p serper -e /search -f request.json --idempotency-key <same-key> --wait
118
+ ```
119
+
120
+ Do not create a new key for an ambiguous retry. It can create and charge a
121
+ second run. For a known run, use `glasser runs get -r <run-id> --wait` instead
122
+ of starting another one.
123
+
124
+ ### Step 6: Report Evidence and Cost
125
+
126
+ For every run used in the answer, report:
127
+
128
+ 1. the provider and endpoint;
129
+ 2. the Glasser run status;
130
+ 3. what the provider response says;
131
+ 4. the exact `Charge` printed by the CLI;
132
+ 5. the private `Run URL` printed by the CLI.
133
+
134
+ `COMPLETED` means the provider answered. It does not guarantee that the
135
+ provider found a result, so describe both the run status and the payload.
136
+
137
+ ## Examples
138
+
139
+ ### Example 1: Research a Search Results Page
140
+
141
+ ```text
142
+ Find a Google SERP endpoint in Glasser, show me its current price and input
143
+ schema, and ask before running one query for "best email marketing tools".
144
+ ```
145
+
146
+ The agent searches the catalog, inspects the selected endpoint, obtains paid
147
+ scope approval, writes input that matches the live schema, and returns sourced
148
+ results with the charge and Run URL.
149
+
150
+ ### Example 2: Fill a Company-Data Gap
151
+
152
+ ```text
153
+ Our current tools cannot enrich these five companies. Find suitable Glasser
154
+ endpoints, compare their prices and required inputs, and stop before spending.
155
+ ```
156
+
157
+ The agent returns a provider comparison without making a paid run.
158
+
159
+ ## Best Practices
160
+
161
+ - Start with the smallest result count that can answer the question.
162
+ - Reuse data already retrieved during the current task.
163
+ - Keep exact decimal money values as strings when calculating totals.
164
+ - Save large outputs to a file and read only the fields needed for analysis.
165
+ - Preserve provider attribution when presenting evidence.
166
+
167
+ ## Limitations
168
+
169
+ - Glasser is a paid service. Endpoint availability, prices, and provider terms
170
+ can change.
171
+ - Data quality and coverage depend on the selected third-party provider.
172
+ - A Glasser run does not grant permission to collect or use personal data.
173
+ Apply the user's purpose, applicable law, and provider terms.
174
+ - The private Run URL is available only to members of the Glasser workspace.
175
+ - The skill cannot complete interactive login without the user approving the
176
+ browser device flow.
177
+
178
+ ## Security & Safety Notes
179
+
180
+ - Treat every `run` as a state-changing paid operation.
181
+ - Keep Keys in an environment secret store and out of files, logs, prompts,
182
+ command arguments, commits, and generated reports.
183
+ - Tell the user which provider receives the request before sending sensitive
184
+ or personal data, and minimize the submitted fields.
185
+ - Do not run speculative calls, retry loops, or unapproved bulk jobs.
186
+ - Stop on insufficient balance, rejected authorization, or a schema mismatch;
187
+ correct the cause before considering another paid call.
188
+
189
+ ## Common Pitfalls
190
+
191
+ - **Problem:** Input validation fails.
192
+ **Solution:** Inspect the endpoint again and rebuild the JSON from the live
193
+ schema instead of guessing field names.
194
+ - **Problem:** A request timed out after submission.
195
+ **Solution:** Reuse the printed Idempotency-Key or fetch the known run.
196
+ - **Problem:** A completed run contains no useful result.
197
+ **Solution:** Report the provider outcome and charge clause; do not label the
198
+ transport as failed or rerun automatically.
199
+ - **Problem:** The CLI reports an available update.
200
+ **Solution:** Finish the current task, then follow the official upgrade
201
+ instructions and refresh the Glasser skill before the next task.
202
+
203
+ ## Related Skills
204
+
205
+ - `@seo-dataforseo` - Use when DataForSEO is already configured and the task is
206
+ specifically SEO data.
207
+ - `@apify-market-research` - Use when the user already has an Apify integration
208
+ for the selected research source.
209
+ - `@parallel-search-mcp` - Use when Parallel is installed and covers the task.
@@ -0,0 +1,243 @@
1
+ ---
2
+ name: marketplace-rbac-audit
3
+ description: "Audit multi-role marketplace authorization across roles, resource ownership, tenant boundaries, and order-state transitions; use when access rules need evidence, not UI assumptions."
4
+ category: security
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-12"
9
+ author: mosinlshaikh
10
+ tags: [marketplace, rbac, authorization, access-control, security]
11
+ tools: [claude, cursor, codex, gemini]
12
+ ---
13
+
14
+ # Marketplace RBAC Audit
15
+
16
+ ## Overview
17
+
18
+ Audit authorization in marketplaces where customers, vendors, fulfillment staff, couriers, support agents, administrators, and service accounts act on shared orders and resources. Build an explicit policy matrix, trace enforcement from route to data access, and verify both allowed and denied behavior without treating hidden UI controls as security.
19
+
20
+ This is a read-only review by default. It does not grant permission to scan a live service, create test accounts, alter permissions, or access another person's data.
21
+
22
+ ## When to Use This Skill
23
+
24
+ - Reviewing authorization in a marketplace, delivery platform, multi-vendor store, or fulfillment system.
25
+ - Adding or changing roles, administrative powers, ownership rules, or order-state transitions.
26
+ - Investigating whether one customer, vendor, courier, hub, or tenant can access another party's resources.
27
+ - Preparing negative authorization tests before release or after an access-control incident.
28
+
29
+ Do not use this skill for authentication design alone, generic multi-tenant architecture, offensive ID enumeration, or penetration testing outside an explicitly authorized test environment.
30
+
31
+ ## Establish the Authorization Contract
32
+
33
+ Record the actual actors and resources instead of assuming standard role names.
34
+
35
+ For each actor, capture:
36
+
37
+ - identity source and role-assignment authority;
38
+ - tenant, organization, store, hub, region, or assignment scope;
39
+ - resource relationships such as owner, seller, assigned courier, servicing hub, or support case;
40
+ - permitted operations and state transitions;
41
+ - emergency, support, delegated, and service-account access;
42
+ - audit-log and approval requirements for privileged actions.
43
+
44
+ Separate these policy dimensions:
45
+
46
+ 1. **Role** — what this actor type may generally do.
47
+ 2. **Relationship** — which specific object the actor may access.
48
+ 3. **Tenant or operational scope** — where the permission applies.
49
+ 4. **Resource state** — whether the operation is valid now.
50
+ 5. **Field scope** — which attributes may be viewed or changed.
51
+
52
+ A matching role is not sufficient when ownership, assignment, tenant, state, or field rules fail.
53
+
54
+ ## Build the Policy Matrix
55
+
56
+ Create one row per meaningful actor-resource-operation combination.
57
+
58
+ | Field | Required content |
59
+ |---|---|
60
+ | Actor | Role plus relevant tenant/store/hub/assignment |
61
+ | Resource | Order, product, inventory, payout, address, profile, delivery, refund, or admin object |
62
+ | Operation | List, view, create, update, delete, assign, transition, refund, export, or impersonate |
63
+ | Relationship | Owner, seller, assignee, servicing hub, same tenant, or none |
64
+ | Required state | Order/payment/delivery state in which the operation is allowed |
65
+ | Field scope | Allowed and prohibited fields |
66
+ | Expected result | Allow or deny, including disclosure policy such as 403 versus 404 |
67
+ | Enforcement point | Route, policy layer, service, query predicate, database policy, or queue consumer |
68
+ | Evidence | Code reference, test ID, request ID, or audit event |
69
+
70
+ Mark an undocumented decision as **UNDEFINED**; do not invent a permission merely because current code allows it.
71
+
72
+ ## Audit Workflow
73
+
74
+ ### 1. Inventory Entry Points
75
+
76
+ Map HTTP routes, GraphQL operations, server actions, background jobs, webhooks, file downloads, exports, administrative tools, and queue consumers that access marketplace resources. Include bulk operations and alternate HTTP methods.
77
+
78
+ ### 2. Trace Identity and Scope
79
+
80
+ For every entry point, trace how the authenticated principal becomes an authorization context. Confirm that role, tenant, store, hub, assignment, and delegation claims come from a trusted server-side source and are current enough for the operation.
81
+
82
+ Do not accept actor, tenant, owner, vendor, hub, courier, price, payout, or privilege fields from the request merely because they are present in a signed-in session.
83
+
84
+ ### 3. Trace Object Authorization
85
+
86
+ Follow the resource identifier from request to data access. Prefer a scoped query or atomic mutation that includes every required predicate:
87
+
88
+ ~~~text
89
+ resource_id
90
+ + tenant/store/hub scope
91
+ + owner/seller/assignee relationship
92
+ + permitted current state
93
+ = authorized object or no match
94
+ ~~~
95
+
96
+ A separate “check then update” sequence may race with reassignment or state changes. Record where a transaction, conditional update, row-level lock, or equivalent consistency control is required.
97
+
98
+ ### 4. Check Field-Level Authorization
99
+
100
+ Compare request and response schemas by role. Verify that mass assignment, serializer defaults, ORM spreads, exports, and error payloads cannot expose or change protected fields.
101
+
102
+ Examples of sensitive fields include:
103
+
104
+ - another customer's address or contact details;
105
+ - vendor settlement and payout configuration;
106
+ - courier identity or precise location outside an active delivery need;
107
+ - internal fraud, moderation, cost, or risk fields;
108
+ - role, tenant, hub, assignment, price, refund, and payment-state attributes.
109
+
110
+ ### 5. Audit State Transitions
111
+
112
+ Build an allowlist of valid transitions with authorized actors and invariants. For example, “assigned courier may mark picked up” is incomplete unless the order is assigned to that courier, is in the expected prior state, belongs to the same operational scope, and has not been cancelled.
113
+
114
+ Reject client-selected final states when the server should derive the transition. Verify idempotency and concurrency behavior for assignment, cancellation, refund, fulfillment, and delivery confirmation.
115
+
116
+ ### 6. Verify Indirect Paths
117
+
118
+ Apply the same policy to:
119
+
120
+ - nested resources and parent-child ownership;
121
+ - invoice, receipt, label, media, and document downloads;
122
+ - search, autocomplete, counts, and analytics;
123
+ - bulk update, import, and export;
124
+ - webhook and queue-triggered changes;
125
+ - cached responses and pre-signed URLs;
126
+ - support tools, impersonation, and “view as user” modes.
127
+
128
+ UI visibility is evidence of presentation only. A hidden button, disabled control, or unpublished link does not enforce authorization.
129
+
130
+ ### 7. Design Negative Tests
131
+
132
+ Use synthetic identities and records in an authorized test environment. For every important allowed case, add the nearest denied cases:
133
+
134
+ - same role, different owner;
135
+ - same role, different vendor/store/hub/tenant;
136
+ - correct role, wrong assignment;
137
+ - correct relationship, invalid resource state;
138
+ - expired, disabled, removed, or downgraded membership;
139
+ - protected field added to an otherwise valid request;
140
+ - bulk request containing one unauthorized object;
141
+ - stale session after role or assignment revocation;
142
+ - guessed nested-resource or download identifier.
143
+
144
+ Do not use real customer records as “victim” data. Do not enumerate identifiers or run live probes without explicit target authorization and a bounded test plan.
145
+
146
+ ### 8. Report Evidence and Gaps
147
+
148
+ Report confirmed behavior separately from code inference. A route with no test is not proven secure; mark it **NOT VERIFIED**. A permission with no owner is **UNDEFINED**.
149
+
150
+ ## Findings Format
151
+
152
+ ~~~text
153
+ MARKETPLACE RBAC AUDIT
154
+ Revision: <immutable source revision>
155
+ Environment: <code review or authorized test target>
156
+ Observed at: <UTC timestamp>
157
+
158
+ POLICY COVERAGE: <covered rows>/<required rows>
159
+ ALLOWED-PATH TESTS: PASS | FAIL | NOT VERIFIED
160
+ DENIED-PATH TESTS: PASS | FAIL | NOT VERIFIED
161
+ OBJECT OWNERSHIP: PASS | FAIL | NOT VERIFIED
162
+ TENANT/STORE/HUB ISOLATION: PASS | FAIL | NOT VERIFIED
163
+ STATE TRANSITIONS: PASS | FAIL | NOT VERIFIED
164
+ FIELD-LEVEL ACCESS: PASS | FAIL | NOT VERIFIED
165
+ INDIRECT PATHS: PASS | FAIL | NOT VERIFIED
166
+ PRIVILEGED ACTION AUDITABILITY: PASS | FAIL | NOT VERIFIED
167
+
168
+ OVERALL: PASS | FAIL | INCOMPLETE
169
+ Findings: <IDs with actor, resource, operation, evidence, and impact>
170
+ Undefined policies: <explicit list>
171
+ Untested paths: <explicit list>
172
+ ~~~
173
+
174
+ ## Example Policy Rows
175
+
176
+ | Actor | Resource and operation | Relationship/state | Expected |
177
+ |---|---|---|---|
178
+ | Customer | View order | Own order | Allow |
179
+ | Customer | View order | Another customer's order | Deny |
180
+ | Vendor operator | Update product | Product belongs to vendor; editable state | Allow permitted fields only |
181
+ | Vendor operator | View payout | Different vendor | Deny |
182
+ | Courier | Update delivery status | Assigned delivery; valid next state | Allow one transition |
183
+ | Courier | Read customer location | Unassigned or completed delivery | Deny |
184
+ | Hub operator | Assign courier | Order belongs to serviced hub; assignable state | Allow |
185
+ | Hub operator | Refund payment | No refund permission | Deny |
186
+ | Support agent | View order | Active support purpose | Allow redacted fields and audit access |
187
+ | Administrator | Change user role | Explicit privilege plus required approval | Allow and emit audit event |
188
+
189
+ ## Severity Guidance
190
+
191
+ - **Critical:** cross-tenant administrative access, payout destination changes, role escalation, mass customer-data access, or unauthorized refunds.
192
+ - **High:** cross-owner order/address access, unauthorized fulfillment transitions, courier location exposure, or vendor isolation failure.
193
+ - **Medium:** excessive fields, missing privileged audit events, stale-role access, or enumeration through counts and metadata.
194
+ - **Low:** policy/documentation gaps with no demonstrated access bypass.
195
+
196
+ Base severity on demonstrated reach, sensitivity, prerequisites, and business impact. Do not inflate severity from a role name alone.
197
+
198
+ ## Best Practices
199
+
200
+ - Treat authorization as policy over role, relationship, scope, state, and fields.
201
+ - Default new actor-resource-operation combinations to deny until explicitly defined.
202
+ - Enforce policy server-side at every entry point, close to the data mutation.
203
+ - Prefer reusable policy functions plus negative tests over scattered role-name checks.
204
+ - Make role and assignment revocation effective within a defined, tested interval.
205
+ - Require explicit approval and immutable audit events for high-impact privileged actions.
206
+ - Re-run affected matrix rows after route, schema, role, workflow, or ownership changes.
207
+
208
+ ## Common Pitfalls
209
+
210
+ - **Problem:** The frontend hides unauthorized actions.
211
+ **Solution:** Test the backend operation directly with a synthetic unauthorized principal.
212
+
213
+ - **Problem:** A vendor role can access every vendor's records.
214
+ **Solution:** Require both the role and the resource's vendor/store relationship in the query.
215
+
216
+ - **Problem:** A courier can submit any delivery state.
217
+ **Solution:** Authorize one server-defined transition from the current state for the assigned courier.
218
+
219
+ - **Problem:** An admin bypass silently applies to support agents.
220
+ **Solution:** Define separate privileged operations, field scope, approval requirements, and audit events.
221
+
222
+ - **Problem:** List endpoints are scoped but exports or downloads are not.
223
+ **Solution:** Reuse the same policy at every direct and indirect resource path.
224
+
225
+ ## Limitations
226
+
227
+ - A source review cannot prove runtime identity-provider configuration or database policies without corresponding evidence.
228
+ - Negative tests prove only the identities, resources, operations, states, and environments exercised.
229
+ - This skill does not replace threat modeling, authentication review, privacy assessment, or an authorized penetration test.
230
+ - Marketplace policy varies by product and jurisdiction; unresolved business decisions must remain **UNDEFINED**.
231
+
232
+ ## Security & Safety Notes
233
+
234
+ - Keep the audit read-only unless the user separately authorizes test creation or remediation.
235
+ - Use synthetic identities and records; never test by accessing unrelated real users' data.
236
+ - Redact tokens, session material, personal data, internal identifiers, and sensitive topology from evidence.
237
+ - Stop before live probing, privilege changes, impersonation, bulk exports, or state-changing requests unless the exact action and target are authorized.
238
+
239
+ ## Related Skills
240
+
241
+ - **@api-security-best-practices** — use for broader API authentication, validation, abuse controls, and secure implementation patterns.
242
+ - **@saas-multi-tenant** — use for designing tenant isolation and PostgreSQL row-level security.
243
+ - **@idor-testing** — use only for explicitly authorized offensive IDOR testing.
@@ -0,0 +1,194 @@
1
+ ---
2
+ name: production-runtime-certification
3
+ description: "Certify a deployed service with fresh evidence across source, CI, migrations, runtime health, readiness, and critical routes; use before declaring a release production-ready."
4
+ category: devops
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-12"
9
+ author: mosinlshaikh
10
+ tags: [production, deployment, verification, reliability, devops]
11
+ tools: [claude, cursor, codex, gemini]
12
+ ---
13
+
14
+ # Production Runtime Certification
15
+
16
+ ## Overview
17
+
18
+ Produce an evidence-backed release verdict that distinguishes code quality, CI success, deployment success, and live runtime health. The skill prevents a green pipeline or successful deploy event from being treated as proof that a service is usable in its target environment.
19
+
20
+ ## When to Use This Skill
21
+
22
+ - Before declaring a release, environment, or migration production-ready.
23
+ - After a deployment when CI is green but runtime health is unknown or failing.
24
+ - During release audits that require a concise PASS, FAIL, or BLOCKED decision with reproducible evidence.
25
+ - When handing a deployed service from engineering to operations or a client.
26
+
27
+ Do not use this skill as a substitute for feature acceptance, security review, load testing, disaster-recovery exercises, or regulatory approval.
28
+
29
+ ## Certification Contract
30
+
31
+ Agree on these inputs before testing:
32
+
33
+ - exact source revision, repository, and target environment;
34
+ - deployment identifier and expected artifact or image digest when available;
35
+ - health and readiness endpoints plus expected success semantics;
36
+ - migration mechanism and expected schema version;
37
+ - critical user journeys or routes;
38
+ - authorized, non-destructive probes and credential boundaries.
39
+
40
+ If the target, authorization, or success criteria are ambiguous, stop and request clarification. Never probe an unrelated environment, expose credentials in output, or modify production data merely to obtain a passing result.
41
+
42
+ ## Evidence Model
43
+
44
+ Record every gate as one of:
45
+
46
+ - **PASS** — fresh evidence satisfies the agreed criterion.
47
+ - **FAIL** — fresh evidence disproves the criterion.
48
+ - **BLOCKED** — the gate could not be tested because access, tooling, configuration, or an upstream dependency is unavailable.
49
+ - **NOT APPLICABLE** — the gate is deliberately excluded with a written reason.
50
+
51
+ `BLOCKED` is not `PASS`. An overall certification can be **GREEN** only when every required gate passes. Any required failure produces **RED**; any required blocked gate with no failure produces **BLOCKED**.
52
+
53
+ ## Workflow
54
+
55
+ ### 1. Pin the Subject
56
+
57
+ Capture the immutable source revision and intended runtime artifact. Confirm that the deployed artifact maps to that revision. A branch name, local working tree, or “latest deployment” label is not immutable evidence.
58
+
59
+ ### 2. Verify Source and CI
60
+
61
+ Run the repository's current validation and test commands on the pinned revision. Inspect the required CI jobs for the same revision, including conclusion and timestamp. Do not infer full CI success from one job or from an older run.
62
+
63
+ ### 3. Verify Deployment Identity
64
+
65
+ Confirm that the target environment reports the expected deployment, revision, or artifact digest. Record the environment and deployment identifiers without copying secrets or sensitive configuration values.
66
+
67
+ ### 4. Verify Database State
68
+
69
+ Use the application's supported migration status or a read-only schema-version query. Confirm migrations completed on the target database and that the application is not running against an unexpected database or schema.
70
+
71
+ Do not apply, roll back, repair, or stamp migrations unless the user separately authorizes that mutation and a recovery plan exists.
72
+
73
+ ### 5. Probe Liveness and Readiness
74
+
75
+ Test liveness and readiness separately when both exist:
76
+
77
+ - **Liveness** shows that the process can respond.
78
+ - **Readiness** shows that the service can handle intended traffic and required dependencies are available.
79
+
80
+ Record timestamp, target, status code, bounded response summary, and latency. Redact tokens, cookies, internal hostnames, database addresses, and response fields that contain secrets or personal data.
81
+
82
+ ### 6. Exercise Critical Routes
83
+
84
+ Run the smallest authorized smoke suite that proves the agreed critical journeys. Prefer synthetic or test records and read-only probes. For authenticated routes, use designated test identities with least privilege and never place credentials in commands, logs, or the report.
85
+
86
+ ### 7. Check Operational Signals
87
+
88
+ Inspect the bounded deployment window for crash loops, unhandled exceptions, dependency failures, elevated error rates, or resource exhaustion. Absence of log access is `BLOCKED`, not proof of health.
89
+
90
+ ### 8. Issue the Verdict
91
+
92
+ Publish the evidence matrix, unresolved risks, and exact overall verdict. Keep observations separate from inference. Include enough identifiers and timestamps for another engineer to reproduce the decision without exposing sensitive data.
93
+
94
+ ## Report Template
95
+
96
+ ```text
97
+ PRODUCTION RUNTIME CERTIFICATION
98
+ Environment: <target>
99
+ Source revision: <immutable revision>
100
+ Deployment/artifact: <immutable identifier>
101
+ Observed at: <UTC timestamp>
102
+
103
+ SOURCE VALIDATION: PASS | FAIL | BLOCKED | NOT APPLICABLE
104
+ CI: PASS | FAIL | BLOCKED | NOT APPLICABLE
105
+ DEPLOYMENT IDENTITY: PASS | FAIL | BLOCKED | NOT APPLICABLE
106
+ DATABASE MIGRATIONS: PASS | FAIL | BLOCKED | NOT APPLICABLE
107
+ LIVENESS: PASS | FAIL | BLOCKED | NOT APPLICABLE
108
+ READINESS: PASS | FAIL | BLOCKED | NOT APPLICABLE
109
+ CRITICAL ROUTES: PASS | FAIL | BLOCKED | NOT APPLICABLE
110
+ OPERATIONAL SIGNALS: PASS | FAIL | BLOCKED | NOT APPLICABLE
111
+
112
+ OVERALL: GREEN | RED | BLOCKED
113
+ Evidence: <commands/checks, run IDs, timestamps, bounded results>
114
+ Unresolved risks: <none or explicit list>
115
+ ```
116
+
117
+ ## Examples
118
+
119
+ ### CI Green, Runtime Unavailable
120
+
121
+ ```text
122
+ SOURCE VALIDATION: PASS — revision 8f31c2a, tests 146/146
123
+ CI: PASS — required run 72814 completed at 2026-09-12T10:06:00Z
124
+ DEPLOYMENT IDENTITY: PASS — artifact maps to revision 8f31c2a
125
+ DATABASE MIGRATIONS: BLOCKED — target database access unavailable
126
+ LIVENESS: FAIL — HTTP 503 at 2026-09-12T10:14:22Z
127
+ READINESS: FAIL — HTTP 503 at 2026-09-12T10:14:24Z
128
+ CRITICAL ROUTES: BLOCKED — smoke checks stopped after readiness failure
129
+ OPERATIONAL SIGNALS: BLOCKED — log access unavailable
130
+
131
+ OVERALL: RED
132
+ Unresolved risks: runtime cause and database state remain unverified
133
+ ```
134
+
135
+ ### Fully Supported Verdict
136
+
137
+ ```text
138
+ SOURCE VALIDATION: PASS
139
+ CI: PASS
140
+ DEPLOYMENT IDENTITY: PASS
141
+ DATABASE MIGRATIONS: PASS
142
+ LIVENESS: PASS
143
+ READINESS: PASS
144
+ CRITICAL ROUTES: PASS
145
+ OPERATIONAL SIGNALS: PASS
146
+
147
+ OVERALL: GREEN
148
+ Unresolved risks: none within the agreed certification scope
149
+ ```
150
+
151
+ ## Best Practices
152
+
153
+ - Use fresh, timestamped evidence for the exact revision and environment.
154
+ - Prefer immutable run, deployment, and artifact identifiers over screenshots or labels.
155
+ - Set bounded timeouts and request counts for runtime probes.
156
+ - Report partial success precisely; preserve FAIL and BLOCKED gates in summaries.
157
+ - Keep the certification read-only unless a separate change request authorizes remediation.
158
+ - Re-run affected gates after any code, configuration, migration, or infrastructure change.
159
+
160
+ ## Common Pitfalls
161
+
162
+ - **Problem:** CI is green, so the release is declared healthy.
163
+ **Solution:** Verify deployment identity, migrations, readiness, routes, and operational signals independently.
164
+
165
+ - **Problem:** A liveness response is treated as readiness.
166
+ **Solution:** Test dependency-aware readiness criteria or record readiness as BLOCKED when none exist.
167
+
168
+ - **Problem:** Smoke tests accidentally create or alter customer data.
169
+ **Solution:** Use non-destructive probes or designated synthetic records with an explicit cleanup policy.
170
+
171
+ - **Problem:** Missing access is reported as success because no error was observed.
172
+ **Solution:** Mark the affected gate BLOCKED and keep the overall verdict BLOCKED unless another required gate fails.
173
+
174
+ - **Problem:** Credentials or internal configuration are copied into evidence.
175
+ **Solution:** Record identifiers and bounded outcomes; redact secrets, personal data, and sensitive topology.
176
+
177
+ ## Limitations
178
+
179
+ - Certification is a point-in-time result for one revision and environment.
180
+ - Passing smoke checks do not establish performance capacity, security, resilience, or business correctness beyond the agreed scope.
181
+ - Provider dashboards and health endpoints can be incomplete; state evidence gaps explicitly.
182
+ - A GREEN verdict expires when the deployed artifact, configuration, schema, dependencies, or target environment changes.
183
+
184
+ ## Security & Safety Notes
185
+
186
+ - Obtain authorization for the exact target and probes before accessing a live environment.
187
+ - Use least-privilege, designated test identities and read-only checks wherever possible.
188
+ - Never print, store, or transmit secrets, session material, personal data, or full sensitive responses in certification evidence.
189
+ - Stop when a check would require destructive data changes, privilege escalation, or a scope expansion that was not authorized.
190
+
191
+ ## Related Skills
192
+
193
+ - `@verification-before-completion` — verifies that any completion claim has fresh supporting evidence; use this skill for the production-specific gate model and verdict.
194
+ - `@deployment-procedures` — use for executing a deployment; return here afterward to certify the deployed runtime.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-collection",
3
- "version": "4.0.61",
3
+ "version": "4.0.63",
4
4
  "description": "OpenCode CLI plugin that automatically downloads and keeps skills up to date.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",