opencode-skills-collection 4.0.69 → 4.0.70
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/bundled-skills/.antigravity-install-manifest.json +39 -1
- package/bundled-skills/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
- package/bundled-skills/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
- package/bundled-skills/dependency-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
- package/bundled-skills/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
- package/bundled-skills/gpt-taste/SKILL.md +8 -1
- package/bundled-skills/hf-cli/SKILL.md +263 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
- package/bundled-skills/jev-social/SKILL.md +182 -0
- package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
- package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
- package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
- package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
- package/bundled-skills/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -0
- package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
- package/bundled-skills/score-eval/SKILL.md +35 -0
- package/bundled-skills/writing-guidelines/SKILL.md +60 -0
- package/package.json +1 -1
- package/skills_index.json +980 -3
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Workflow automation integrations
|
|
2
|
+
|
|
3
|
+
Design guide for integrating Apify into a workflow-automation platform (Zapier, n8n, Make, Pipedream, Activepieces, or a similar trigger/action/search host). This file is **UX-design focused and platform-agnostic**: it describes the capability surface, the resource model, and the user-facing behavior, not the host platform's internal build mechanics, release pipeline, or secrets. Apply the cross-cutting rules from `SKILL.md` on top.
|
|
4
|
+
|
|
5
|
+
The host platform's model is rigid: every Apify capability must be expressed as one of **trigger**, **action (create)**, or **search (read)**. Decide the mapping before writing any code.
|
|
6
|
+
|
|
7
|
+
## 1. Map Apify to the host's trigger / action / search model
|
|
8
|
+
|
|
9
|
+
| Host type | Apify capability | Purpose |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| **Trigger** (hook) | Actor / Task run finished | Event-driven: start a workflow when a run reaches a terminal status |
|
|
12
|
+
| **Trigger** (hidden, polling) | List Actors / Tasks | Back dynamic dropdowns - not user-facing steps |
|
|
13
|
+
| **Action (create)** | Run Actor; Run Task; Run Actor + get dataset; Run Task + get dataset; Scrape single URL; Set KV record | Synchronous operations that produce or store data |
|
|
14
|
+
| **Search (read)** | Get last run; Get run; List runs; Get dataset items; Get KV record | Find existing records, optionally branch on them |
|
|
15
|
+
|
|
16
|
+
Reads of the last run or stored data are **searches**, because that is the host's mechanism for "find an existing record." Run-finished is a **webhook trigger**. Actor/Task *selection* is a **hidden trigger** that feeds dropdowns - reusing one hidden trigger across multiple actions keeps the surface DRY.
|
|
17
|
+
|
|
18
|
+
## 2. Canonical capability matrix
|
|
19
|
+
|
|
20
|
+
The complete set of operations a workflow integration should surface. Treat this as the floor, not a menu to trim without reason.
|
|
21
|
+
|
|
22
|
+
**Triggers**
|
|
23
|
+
- Actor run finished (webhook; user picks terminal statuses: SUCCEEDED / FAILED / TIMED-OUT / ABORTED)
|
|
24
|
+
- Task run finished (same shape, scoped to a Task)
|
|
25
|
+
|
|
26
|
+
**Actions (creates)**
|
|
27
|
+
- Run Actor - fire an Actor run
|
|
28
|
+
- Run Actor and get dataset items - fire and return results inline
|
|
29
|
+
- Run Task - fire a saved Task configuration
|
|
30
|
+
- Run Task and get dataset items - fire and return results inline
|
|
31
|
+
- Scrape single URL - curated, 2-field wrapper over a content scraper (see section 10)
|
|
32
|
+
- Set key-value store record - write a file/string to a KV store
|
|
33
|
+
|
|
34
|
+
**Searches (reads)**
|
|
35
|
+
- Get last Actor/Task run - the most recent matching run
|
|
36
|
+
- Get run - by run ID
|
|
37
|
+
- List runs - filterable by status
|
|
38
|
+
- Get dataset items - by dataset ID, with offset/limit and optional fields/omit
|
|
39
|
+
- Get key-value store record - by store ID + record key
|
|
40
|
+
|
|
41
|
+
**Hidden selectors (back dropdowns, not user steps)**
|
|
42
|
+
- List Actors (recently used source + Store source)
|
|
43
|
+
- List Tasks
|
|
44
|
+
|
|
45
|
+
If the host platform cannot represent every operation, prioritize in this order: run-finished trigger, run Actor + get dataset, get dataset items, scrape single URL, run Task + get dataset, get KV record, set KV record.
|
|
46
|
+
|
|
47
|
+
## 3. Resource -> operation organization
|
|
48
|
+
|
|
49
|
+
Organize the action node's surface as **resource -> operation**, mirroring both the host platform's UX convention and Apify's domain model. A two-level router (resource, then operation) keeps adding an operation a copy-and-adapt task and co-locates each operation's parameters and I/O. Users navigate Actor -> "Run actor", Dataset -> "Get items", etc. Avoid a flat list of dozens of operations.
|
|
50
|
+
|
|
51
|
+
## 4. Actor / Task selection UX
|
|
52
|
+
|
|
53
|
+
IDs (Actor, Task, run, dataset, KV store, record key) should use the host's resource-locator property type with multiple modes: **From list**, **By URL**, **By ID**. Extract the ID from a pasted Console URL (e.g. `https://console.apify.com/actors/<id>/input` -> `<id>`).
|
|
54
|
+
|
|
55
|
+
Offer **two selection sources** in one selector:
|
|
56
|
+
- **Recently used** (default) - the user's own Actors/Tasks, sorted by last run started. This is what most users want.
|
|
57
|
+
- **Store** - browse the public marketplace by search term, sorted by popularity.
|
|
58
|
+
|
|
59
|
+
A toggle with "recompute fields when changed" lets users switch the dropdown source without leaving the node. Choose a pagination limit that balances completeness against load time (the host UI must support searching within dropdown results).
|
|
60
|
+
|
|
61
|
+
## 5. Dynamic input translation
|
|
62
|
+
|
|
63
|
+
The highest-leverage UX piece. When a user selects an Actor, fetch the Actor's build and translate its `inputSchema` into the host platform's form fields dynamically. Hardcoding fields per Actor is unmaintainable across thousands of Actors; a translator supports *any* Actor's input as a host form.
|
|
64
|
+
|
|
65
|
+
Handle the type/editor mappings that have no direct host equivalent, and degrade gracefully rather than crashing:
|
|
66
|
+
|
|
67
|
+
| Apify type/editor | Host field |
|
|
68
|
+
|---|---|
|
|
69
|
+
| `string` + `javascript`/`python` editor | code field |
|
|
70
|
+
| `string` + `textarea` | multiline text |
|
|
71
|
+
| `string` + `datepicker` | datetime |
|
|
72
|
+
| `string` + `select` / `enum` / `enumSuggestedValues` | choices dropdown |
|
|
73
|
+
| `isSecret: true` | password |
|
|
74
|
+
| `array` + `json`/`keyValue` editor | multiline text with a JSON.stringify default |
|
|
75
|
+
| `array` + `requestListSources`/`pseudoUrls`/`globs`/`stringList` | flat string list (re-expand at run time) |
|
|
76
|
+
| `object` + `proxy` editor | info box telling users to set it in Apify Console (host has no proxy UI) |
|
|
77
|
+
| `object` + `schemaBased` | nested children fields |
|
|
78
|
+
| `sectionCaption` | helpText/info box (host has no stackable sections) |
|
|
79
|
+
|
|
80
|
+
Two gotchas:
|
|
81
|
+
- On list fields, a `default` would pre-populate a non-removable first item and duplicate entries - move prefill values to `placeholder`.
|
|
82
|
+
- Mark the build selector so a build-tag change **recomputes the generated fields**, since input schemas can differ across builds.
|
|
83
|
+
|
|
84
|
+
## 6. Run UX: sync vs async, cost caps, bounded polling
|
|
85
|
+
|
|
86
|
+
Offer a **sync/async toggle** on run-start actions:
|
|
87
|
+
- Sync: block until the run finishes (document the host's hard timeout so users know when to choose async).
|
|
88
|
+
- Async: return immediately with the run ID for long-running jobs.
|
|
89
|
+
|
|
90
|
+
Use the asynchronous REST flow under the hood (POST /runs with `waitForFinish=0`, then poll). Polling must be **bounded** - use the run's own `timeoutSecs` + a grace buffer, with an absolute ceiling fallback (e.g. 24h). Poll at a fixed interval (e.g. 1s). "Run actor and get dataset" must additionally require `status === 'SUCCEEDED'` before fetching dataset items.
|
|
91
|
+
|
|
92
|
+
Every run-start action exposes a **Maximum Cost per Run** field (`maxTotalChargeUsd`), `min: 0`, default `null`. Send it as a query parameter only when non-null and `> 0`; `0`/empty means *no limit*. Never let this be an Actor input field.
|
|
93
|
+
|
|
94
|
+
## 7. Output normalization into one enriched shape
|
|
95
|
+
|
|
96
|
+
Bare Actor run objects contain only storage IDs, not results - useless downstream. Enrich every run once, centrally, into a single shape returned by all run-producing and run-finding actions:
|
|
97
|
+
|
|
98
|
+
- The run's `OUTPUT` from the default key-value store (and any user-selected store keys).
|
|
99
|
+
- `datasetItems` - up to a sensible cap (e.g. 100 items) from the default dataset.
|
|
100
|
+
- `datasetItemsFileUrls` - pre-built download URLs for JSON/CSV/XML/XLSX/HTML/RSS exports.
|
|
101
|
+
- `detailsPageUrl` - a deep link to the run in Apify Console.
|
|
102
|
+
- Strip fields useless to host users (`meta`, `stats`, `options`, `userId`, raw `output`, `standby`).
|
|
103
|
+
|
|
104
|
+
Downstream steps map fields by name regardless of which action produced the run, because every action yields the same shape. Describe this shape to the host UI with sampled output fields (sample ~10 items, merge their keys).
|
|
105
|
+
|
|
106
|
+
## 8. Guard against large datasets
|
|
107
|
+
|
|
108
|
+
Estimate the full download size before inlining: fetch one item, multiply by the requested item count with a safety margin (e.g. 1.2x), compare to a payload cap (e.g. 10 MB). If it exceeds the cap, **do not attempt the inline download** - return a warning item plus the dataset file URLs. When a trigger fetches more items than the cap allows, push a warning pointing users to the "Get Dataset Items" action with `run.defaultDatasetId` for full results. The host platform has payload/time limits the Apify API does not; always offer a file-download fallback.
|
|
109
|
+
|
|
110
|
+
## 9. Files and binary records
|
|
111
|
+
|
|
112
|
+
Map the host's file-handling primitives (dehydration / stashing / signed URLs) to Apify's binary KV records. For "Get KV record":
|
|
113
|
+
- JSON/text under a size threshold (e.g. 20 MB) -> parsed and returned as fields the user can map directly.
|
|
114
|
+
- Binary or larger records -> a dehydrated pointer the host lazily fetches when a downstream step needs it.
|
|
115
|
+
- Records above a hard limit (e.g. 120 MB, with margin below the host's 150 MB ceiling) -> rejected outright with an actionable message.
|
|
116
|
+
|
|
117
|
+
## 10. Run-finished trigger UX
|
|
118
|
+
|
|
119
|
+
Use the host's hook type backed by Apify webhooks:
|
|
120
|
+
- **Subscribe**: create an Apify webhook scoped to an `actorId` or `actorTaskId`, with `eventTypes` from the user-selected terminal statuses. The webhook's `requestUrl` is the host's target URL. Make registration **idempotent** - derive a key from every field that distinguishes one registration from another (`resource:id:sortedEvents:requestUrl`) so re-activating a workflow does not create duplicate webhooks. Persist the created webhook ID so deactivation can delete it.
|
|
121
|
+
- **Unsubscribe**: delete the webhook by its stored ID.
|
|
122
|
+
- **Perform**: read the webhook payload and enrich it (section 7).
|
|
123
|
+
- **Fallback list**: fetch the 3 most recent matching runs so users see realistic test data when configuring the trigger without waiting for a real event.
|
|
124
|
+
|
|
125
|
+
Offer an event multi-select (SUCCEEDED / FAILED / TIMED-OUT / ABORTED) plus an "any" shortcut that expands to all four. Build the `condition: { actorId }` or `{ actorTaskId }` from the watched resource. Pass the webhook payload through as workflow data - it already carries the run metadata.
|
|
126
|
+
|
|
127
|
+
## 11. Error UX
|
|
128
|
+
|
|
129
|
+
Centralize API error mapping in one place, not per action. Match each Apify error to the host's error category:
|
|
130
|
+
- 5xx and 429 -> retryable (so backoff applies).
|
|
131
|
+
- `token-not-found` / auth errors -> an authentication error the user must fix.
|
|
132
|
+
- `full-permission-actor-not-approved` -> a non-retryable error with the **validated** approval URL in the message (approval is a manual Console action; retrying cannot help).
|
|
133
|
+
- 404 on KV record GET/HEAD -> return empty rather than throw (a missing key is a valid "no data" result).
|
|
134
|
+
- Other 4xx -> a plain error with the API's actual message, or a generic fallback.
|
|
135
|
+
|
|
136
|
+
Use retryable errors only when retrying can actually succeed. Keep error *codes* (like `EPERM`) out of any message field the host replaces, so the real text survives.
|
|
137
|
+
|
|
138
|
+
## 12. Auth UX
|
|
139
|
+
|
|
140
|
+
For consumer-facing automation platforms, prefer **OAuth2 with PKCE** over an API-token field. Users authorize through a browser; no raw token typing. Disable auto-refresh only if the host cannot surface a refresh failure gracefully - otherwise leave it on. Validate the token with a `GET /v2/users/me` test call and populate the connection label with the username/email.
|
|
141
|
+
|
|
142
|
+
If the host is headless-only, fall back to an API-token credential with the same verify call on a "Verify" button.
|
|
143
|
+
|
|
144
|
+
## 13. Convenience operations: "Scrape single URL"
|
|
145
|
+
|
|
146
|
+
Beyond generic "run Actor", ship a curated **Scrape single URL** action: a 2-field form (`url`, `outputFormat`) wrapping a content scraper with sensible defaults (`maxCrawlDepth: 0`, `maxResults: 1`). Validate the URL first (`new URL()` + protocol + hostname check) with an actionable error - bad input must never start a paid run. Return a **lean, single-object** output: `{ ...pageMetadata, [outputFormat]: content }` - strip all content variants and re-add only the chosen one. This is ideal for LLM flows (a single object beats a dataset array) and lowers the barrier for non-power users. Point power users to the underlying Actor for advanced options.
|
|
147
|
+
|
|
148
|
+
## Definition-of-done checklist
|
|
149
|
+
|
|
150
|
+
- [ ] Capability matrix from section 2 is fully surfaced (or trimmed with documented reason).
|
|
151
|
+
- [ ] Resource -> operation organization; no flat operation soup.
|
|
152
|
+
- [ ] Actor/Task selection offers recently-used + Store sources with URL/ID extraction.
|
|
153
|
+
- [ ] Actor input is translated dynamically from the build schema; degradation is graceful.
|
|
154
|
+
- [ ] Run actions expose sync/async toggle and a `maxTotalChargeUsd` field (null = unlimited).
|
|
155
|
+
- [ ] Polling is bounded; never `while (true)`.
|
|
156
|
+
- [ ] All run-producing and run-finding actions return the one enriched run shape.
|
|
157
|
+
- [ ] Large-dataset guard with file-URL fallback is in place.
|
|
158
|
+
- [ ] Run-finished trigger is webhook-backed, idempotent, and has fallback sample data.
|
|
159
|
+
- [ ] Error mapping is centralized; approval URLs are validated; codes don't clobber messages.
|
|
160
|
+
- [ ] OAuth2 PKCE is the default consumer auth path; token fallback has a verify call.
|
|
161
|
+
- [ ] A "Scrape single URL"-style convenience action exists with pre-run URL validation.
|
|
162
|
+
- [ ] `x-apify-integration-platform` header is sent on every outbound request; `x-apify-integration-origin: apify-integration-development-skill` included if built from this skill.
|
|
163
|
+
- [ ] Two test modes (mocked + live E2E) pass.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Architecture Review
|
|
2
|
+
|
|
3
|
+
This is an official Ontoly Agent Skill. It is independently installable and teaches an agent how to use Ontoly for architecture review.
|
|
4
|
+
|
|
5
|
+
## Version
|
|
6
|
+
|
|
7
|
+
- Skill version: 1.0.0
|
|
8
|
+
- Minimum Ontoly version: 1.0.0
|
|
9
|
+
- Required capabilities: `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies`, `EvidencePack`
|
|
10
|
+
- Enhancement: LLM Enhancement
|
|
11
|
+
- Deprecated: no
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
Install this skill with any Agent Skills compatible installer that supports `SKILL.md` directories, or copy this folder into your agent skills directory.
|
|
16
|
+
|
|
17
|
+
## Use
|
|
18
|
+
|
|
19
|
+
Ask the agent a task such as:
|
|
20
|
+
|
|
21
|
+
> What are the primary packages, modules, and services?
|
|
22
|
+
|
|
23
|
+
The agent should build or verify the Ontoly graph, use MCP capabilities, cite evidence, and only inspect files as a fallback.
|
|
24
|
+
|
|
25
|
+
## Public Docs
|
|
26
|
+
|
|
27
|
+
- [Agent Skills](https://ontoly.xyz/docs/agent-skills)
|
|
28
|
+
- [Skills Overview](https://ontoly.xyz/docs/skills-overview)
|
|
29
|
+
- [MCP](https://ontoly.xyz/docs/mcp)
|
|
30
|
+
- [Capabilities](https://ontoly.xyz/docs/capabilities)
|
|
31
|
+
- [Skills Validation](https://ontoly.xyz/docs/skills-validation)
|
|
32
|
+
|
|
33
|
+
## Shared References
|
|
34
|
+
|
|
35
|
+
This skill depends on the shared Ontoly workflow in [reference/workflow.md](reference/workflow.md).
|
|
36
|
+
|
|
37
|
+
## Learn more
|
|
38
|
+
|
|
39
|
+
- Documentation: https://ontoly.xyz/docs
|
|
40
|
+
- This skill on the web: https://ontoly.xyz/skills#architecture-review
|
|
41
|
+
- All Ontoly Agent Skills: https://ontoly.xyz/skills
|
|
42
|
+
- Install via skills.sh: https://www.skills.sh/?q=0xsarwagya/ontoly
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture-review
|
|
3
|
+
description: Review repository architecture using Ontoly Software Graph and MCP capabilities.
|
|
4
|
+
Use when asked to explain architecture, module boundaries, package topology, service
|
|
5
|
+
ownership, or architectural risk.
|
|
6
|
+
license: AGPL-3.0-only
|
|
7
|
+
compatibility: Portable Agent Skills format; requires Ontoly CLI and MCP-capable or
|
|
8
|
+
CLI-capable coding agent.
|
|
9
|
+
metadata:
|
|
10
|
+
ontoly.skill.version: 1.3.3
|
|
11
|
+
ontoly.min.version: 1.3.3
|
|
12
|
+
ontoly.capabilities: ExplainArchitecture, GraphStatistics, FindCycles, FindDependencies,
|
|
13
|
+
EvidencePack
|
|
14
|
+
ontoly.category: architecture
|
|
15
|
+
ontoly.enhancement: LLM Enhancement
|
|
16
|
+
ontoly.deprecated: 'false'
|
|
17
|
+
source_repo: 0xsarwagya/ontoly
|
|
18
|
+
source_type: community
|
|
19
|
+
source: community
|
|
20
|
+
date_added: '2026-09-21'
|
|
21
|
+
risk: unknown
|
|
22
|
+
---
|
|
23
|
+
## When to Use
|
|
24
|
+
- Use when this upstream workflow matches the user's stated goal.
|
|
25
|
+
- Use when the task requires the procedures documented in this skill.
|
|
26
|
+
|
|
27
|
+
# Architecture Review
|
|
28
|
+
|
|
29
|
+
Use this skill when the user asks for architecture review using Ontoly evidence.
|
|
30
|
+
|
|
31
|
+
## Required Workflow
|
|
32
|
+
|
|
33
|
+
Follow [the shared Ontoly workflow. Also read [graph evidence rules, [MCP usage, [best practices, and [fallback rules when the task requires detail.
|
|
34
|
+
|
|
35
|
+
## Ontoly Capabilities
|
|
36
|
+
|
|
37
|
+
Use these capabilities first: `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies`, `EvidencePack`.
|
|
38
|
+
|
|
39
|
+
## Output Contract
|
|
40
|
+
|
|
41
|
+
Return:
|
|
42
|
+
|
|
43
|
+
- answer or plan
|
|
44
|
+
- capabilities invoked
|
|
45
|
+
- graph evidence with node ids, edge types, source spans, and graph hash when available
|
|
46
|
+
- confidence: high, medium, or low
|
|
47
|
+
- fallback reason if repository files were inspected
|
|
48
|
+
|
|
49
|
+
## Boundaries
|
|
50
|
+
|
|
51
|
+
Do not implement compiler, query, MCP, SDK, or business logic in the skill. Do not search repository files until Ontoly cannot answer or evidence must be confirmed.
|
|
52
|
+
|
|
53
|
+
## Resources
|
|
54
|
+
|
|
55
|
+
- [Examples
|
|
56
|
+
- [Prompt template
|
|
57
|
+
- [Capability notes
|
|
58
|
+
|
|
59
|
+
## Learn more
|
|
60
|
+
|
|
61
|
+
- Documentation: https://ontoly.xyz/docs
|
|
62
|
+
- This skill on the web: https://ontoly.xyz/skills#architecture-review
|
|
63
|
+
- All Ontoly Agent Skills: https://ontoly.xyz/skills
|
|
64
|
+
- Install via skills.sh: https://www.skills.sh/?q=0xsarwagya/ontoly
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## Examples
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
User: Apply this skill to my current task.
|
|
71
|
+
Assistant: Follow the workflow in this skill, cite limitations, and ask before risky steps.
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Limitations
|
|
75
|
+
|
|
76
|
+
- Imported upstream skill; verify credentials, permissions, and safety boundaries before execution.
|
|
77
|
+
- Does not replace environment-specific validation, testing, or maintainer review.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Architecture Review Examples
|
|
2
|
+
|
|
3
|
+
Each example is graph-first and MCP-first.
|
|
4
|
+
|
|
5
|
+
| Repository | Questions | Expected workflow | Capabilities invoked | Expected evidence | Expected answer |
|
|
6
|
+
| --- | --- | --- | --- | --- | --- |
|
|
7
|
+
| Ovok Core | Trace the login flow through the NestJS auth controller. | Follow shared workflow, run `EvidencePack` first, then `ExplainArchitecture` then `GraphStatistics` then `FindCycles` then `FindDependencies`, inspect files only if graph evidence is missing. | `EvidencePack`, `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies` | controller, route, service, dependency-injection edges; graph hash; confidence. | A concise architecture summary with graph-backed boundaries, risks, evidence node ids, and confidence. |
|
|
8
|
+
| Ghost | Explain the package entrypoint and public API surface. | Follow shared workflow, run `EvidencePack` first, then `ExplainArchitecture` then `GraphStatistics` then `FindCycles` then `FindDependencies`, inspect files only if graph evidence is missing. | `EvidencePack`, `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies` | package, exports, functions, interfaces; graph hash; confidence. | A concise architecture summary with graph-backed boundaries, risks, evidence node ids, and confidence. |
|
|
9
|
+
| durable-local | Find storage APIs and consumers before a refactor. | Follow shared workflow, run `EvidencePack` first, then `ExplainArchitecture` then `GraphStatistics` then `FindCycles` then `FindDependencies`, inspect files only if graph evidence is missing. | `EvidencePack`, `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies` | functions, interfaces, dependents, configuration; graph hash; confidence. | A concise architecture summary with graph-backed boundaries, risks, evidence node ids, and confidence. |
|
|
10
|
+
| 0xsarwagya | Summarize workspace packages and package dependencies. | Follow shared workflow, run `EvidencePack` first, then `ExplainArchitecture` then `GraphStatistics` then `FindCycles` then `FindDependencies`, inspect files only if graph evidence is missing. | `EvidencePack`, `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies` | workspace, packages, framework nodes, dependency edges; graph hash; confidence. | A concise architecture summary with graph-backed boundaries, risks, evidence node ids, and confidence. |
|
|
11
|
+
| Innosphere | Identify application modules and request ownership. | Follow shared workflow, run `EvidencePack` first, then `ExplainArchitecture` then `GraphStatistics` then `FindCycles` then `FindDependencies`, inspect files only if graph evidence is missing. | `EvidencePack`, `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies` | controllers, modules, routes, services; graph hash; confidence. | A concise architecture summary with graph-backed boundaries, risks, evidence node ids, and confidence. |
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Agent Best Practices
|
|
2
|
+
|
|
3
|
+
- Keep the answer graph-first and concise.
|
|
4
|
+
- Separate measured graph facts from inference.
|
|
5
|
+
- Prefer capability output over source search.
|
|
6
|
+
- Include confidence: high when graph nodes and relationships directly answer the question, medium when evidence is partial, low when fallback file inspection was required.
|
|
7
|
+
- Never generate SDKs, refactors, or security claims from the skill itself. The skill may plan workflows, but Ontoly remains the source of truth.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Architecture Review Capability Notes
|
|
2
|
+
|
|
3
|
+
Primary capabilities: `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies`, `EvidencePack`.
|
|
4
|
+
|
|
5
|
+
Use [../reference/mcp.md](../reference/mcp.md) for common capability behavior and fallback CLI equivalents.
|
|
6
|
+
|
|
7
|
+
## Required Evidence
|
|
8
|
+
|
|
9
|
+
- capability name
|
|
10
|
+
- graph hash
|
|
11
|
+
- node ids and types
|
|
12
|
+
- relationship types and direction
|
|
13
|
+
- source spans when present
|
|
14
|
+
- confidence
|
|
15
|
+
|
|
16
|
+
## Compatibility
|
|
17
|
+
|
|
18
|
+
- Skill version: 1.0.0
|
|
19
|
+
- Minimum Ontoly version: 1.0.0
|
|
20
|
+
- Deprecation status: active
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Fallbacks
|
|
2
|
+
|
|
3
|
+
Fallbacks are allowed only after Ontoly is insufficient. Valid fallback reasons:
|
|
4
|
+
|
|
5
|
+
- graph artifact missing and build fails
|
|
6
|
+
- relevant capability unavailable
|
|
7
|
+
- graph trust below the task threshold
|
|
8
|
+
- node is ambiguous or absent
|
|
9
|
+
- source quote is needed to confirm a public answer
|
|
10
|
+
|
|
11
|
+
When falling back, state the reason and keep inspection narrow: one file, one symbol, or one source span when possible.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Software Graph Evidence
|
|
2
|
+
|
|
3
|
+
Use Software Graph evidence as the primary source of truth. Prefer deterministic identifiers over prose names.
|
|
4
|
+
|
|
5
|
+
Evidence fields to capture:
|
|
6
|
+
|
|
7
|
+
- graph hash
|
|
8
|
+
- capability invoked
|
|
9
|
+
- node id and node type
|
|
10
|
+
- edge type and direction
|
|
11
|
+
- source span when present
|
|
12
|
+
- diagnostic codes when relevant
|
|
13
|
+
- confidence and reason for confidence
|
|
14
|
+
|
|
15
|
+
Do not infer relationships that are absent from the graph. You may make a clearly labeled inference only after stating the graph evidence that supports it.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Ontoly MCP Usage
|
|
2
|
+
|
|
3
|
+
Use Ontoly MCP capabilities before searching files. Common capability groups:
|
|
4
|
+
|
|
5
|
+
- Architecture: `ExplainArchitecture`, `GraphStatistics`
|
|
6
|
+
- Lookup: `FindNode`, `FindFunction`, `InspectFile`, `InspectModule`, `InspectClass`, `InspectFunction`
|
|
7
|
+
- Dependencies: `FindDependencies`, `FindDependents`, `FindCycles`, `ImpactAnalysis`
|
|
8
|
+
- Requests: `TraceRequestLifecycle`, `FindResponsibleFunction`, `TraceExecution`
|
|
9
|
+
- Security: `FindAuthenticationFlow`, `FindConfigurationUsage`
|
|
10
|
+
- Configuration: `FindConfiguration`, `FindConfigurationUsage`
|
|
11
|
+
- Static analysis: `FindDeadCode`, `FindUnusedFeature`, `FindEntrypoints`
|
|
12
|
+
- Evidence packs: `EvidencePack`
|
|
13
|
+
|
|
14
|
+
If an agent cannot call MCP directly, use the nearest CLI command such as `ontoly evidence`, `ontoly report`, `ontoly query`, `ontoly trace`, or `ontoly inspect`.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Ontoly Agent Skill Standard Workflow
|
|
2
|
+
|
|
3
|
+
Every Ontoly skill follows this workflow. Skills teach orchestration only; Ontoly provides the software understanding.
|
|
4
|
+
|
|
5
|
+
LLM Enhancement is mandatory every time Ontoly is used by an LLM. An LLM-facing workflow must use an Ontoly skill or equivalent installed workflow that declares `ontoly.enhancement: "LLM Enhancement"` and preserves graph-first evidence, confidence, and fallback rules.
|
|
6
|
+
|
|
7
|
+
1. Verify that an Ontoly graph exists at `.ontoly/SoftwareGraph.json`.
|
|
8
|
+
2. If the graph is missing or stale, run `ontoly build .`.
|
|
9
|
+
3. Check graph trust with `ontoly coverage .` or `ontoly stats . --json`.
|
|
10
|
+
4. Prefer Ontoly MCP by starting or connecting to `ontoly mcp`.
|
|
11
|
+
5. Query `EvidencePack` first for compact graph context, then the capability that matches the task before reading files.
|
|
12
|
+
6. Inspect repository files only when Ontoly cannot answer, confidence is low, or source snippets are needed for confirmation.
|
|
13
|
+
7. Always cite evidence: node ids, edge ids or relationship types, source spans, graph hash, capability name, and confidence.
|
|
14
|
+
|
|
15
|
+
When evidence is incomplete, say what Ontoly proved, what remains unknown, and which fallback check was used.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Architecture Review
|
|
2
|
+
|
|
3
|
+
Repository: {{repository}}
|
|
4
|
+
Question: {{question}}
|
|
5
|
+
|
|
6
|
+
## Workflow
|
|
7
|
+
|
|
8
|
+
1. Verify `.ontoly/SoftwareGraph.json`.
|
|
9
|
+
2. Build with `ontoly build .` if missing.
|
|
10
|
+
3. Check trust with `ontoly coverage .`.
|
|
11
|
+
4. Use Ontoly MCP capabilities: `ExplainArchitecture`, `GraphStatistics`, `FindCycles`, `FindDependencies`.
|
|
12
|
+
5. Inspect files only if Ontoly cannot answer.
|
|
13
|
+
|
|
14
|
+
## Response
|
|
15
|
+
|
|
16
|
+
- Summary:
|
|
17
|
+
- Capabilities invoked:
|
|
18
|
+
- Evidence:
|
|
19
|
+
- Confidence:
|
|
20
|
+
- Fallbacks used:
|
|
21
|
+
- Recommended next action:
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review-sensei
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Expert code reviewer that catches bugs, security issues, performance
|
|
5
|
+
problems, and design flaws with actionable fix suggestions.
|
|
6
|
+
author: yundu-ai
|
|
7
|
+
tags:
|
|
8
|
+
- code-review
|
|
9
|
+
- security
|
|
10
|
+
- performance
|
|
11
|
+
- quality
|
|
12
|
+
- debugging
|
|
13
|
+
model: claude
|
|
14
|
+
source_repo: demo112/yunqu-ai-skills
|
|
15
|
+
source_type: community
|
|
16
|
+
source: community
|
|
17
|
+
date_added: '2026-09-21'
|
|
18
|
+
risk: unknown
|
|
19
|
+
---
|
|
20
|
+
## When to Use
|
|
21
|
+
- Use when this upstream workflow matches the user's stated goal.
|
|
22
|
+
- Use when the task requires the procedures documented in this skill.
|
|
23
|
+
|
|
24
|
+
# Code Review Sensei
|
|
25
|
+
|
|
26
|
+
You are a senior code reviewer with 15+ years of experience across multiple languages and domains. You review code like a mentor — firm on quality, clear in feedback, and always educational.
|
|
27
|
+
|
|
28
|
+
## Review Framework
|
|
29
|
+
|
|
30
|
+
For every code review, evaluate across 5 dimensions:
|
|
31
|
+
|
|
32
|
+
### 1. 🐛 Correctness
|
|
33
|
+
- Logic errors
|
|
34
|
+
- Off-by-one errors
|
|
35
|
+
- Null/undefined handling
|
|
36
|
+
- Race conditions
|
|
37
|
+
- State management bugs
|
|
38
|
+
- Error handling completeness
|
|
39
|
+
|
|
40
|
+
### 2. 🔒 Security
|
|
41
|
+
- Input validation and sanitization
|
|
42
|
+
- SQL injection / XSS / CSRF risks
|
|
43
|
+
- Authentication/authorization gaps
|
|
44
|
+
- Secret exposure (hardcoded keys, tokens in logs)
|
|
45
|
+
- Dependency vulnerabilities
|
|
46
|
+
- Data exposure (over-fetching, missing field-level auth)
|
|
47
|
+
|
|
48
|
+
### 3. ⚡ Performance
|
|
49
|
+
- Algorithmic complexity (O(n²) where O(n) suffices?)
|
|
50
|
+
- Unnecessary allocations/copies
|
|
51
|
+
- Missing indexes or N+1 queries
|
|
52
|
+
- Blocking I/O in async contexts
|
|
53
|
+
- Memory leaks (unclosed connections, event listeners)
|
|
54
|
+
- Caching opportunities
|
|
55
|
+
|
|
56
|
+
### 4. 🏗️ Design
|
|
57
|
+
- Single Responsibility Principle
|
|
58
|
+
- Coupling between components
|
|
59
|
+
- API contract clarity
|
|
60
|
+
- Error propagation strategy
|
|
61
|
+
- Testability
|
|
62
|
+
- Extensibility without modification
|
|
63
|
+
|
|
64
|
+
### 5. 📖 Readability
|
|
65
|
+
- Naming clarity
|
|
66
|
+
- Function/method length
|
|
67
|
+
- Nesting depth
|
|
68
|
+
- Comment quality (why, not what)
|
|
69
|
+
- Consistent style
|
|
70
|
+
|
|
71
|
+
## Review Output Format
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
## Code Review: [File/Component Name]
|
|
75
|
+
|
|
76
|
+
### Summary
|
|
77
|
+
[1-2 sentence overall assessment]
|
|
78
|
+
|
|
79
|
+
### Critical Issues 🔴
|
|
80
|
+
[Issues that MUST be fixed before merge]
|
|
81
|
+
|
|
82
|
+
**Issue 1: [Title]**
|
|
83
|
+
- **Dimension**: Security / Correctness / Performance
|
|
84
|
+
- **Location**: Line X-Y
|
|
85
|
+
- **Problem**: [What's wrong]
|
|
86
|
+
- **Impact**: [What could go wrong]
|
|
87
|
+
- **Fix**:
|
|
88
|
+
```language
|
|
89
|
+
// Fixed code here
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Warnings 🟡
|
|
93
|
+
[Issues that should be addressed soon]
|
|
94
|
+
|
|
95
|
+
**Issue 2: [Title]**
|
|
96
|
+
- **Dimension**: Performance / Design
|
|
97
|
+
- **Location**: Line X-Y
|
|
98
|
+
- **Problem**: [What's suboptimal]
|
|
99
|
+
- **Suggestion**: [How to improve]
|
|
100
|
+
|
|
101
|
+
### Suggestions 🟢
|
|
102
|
+
[Nice-to-have improvements]
|
|
103
|
+
|
|
104
|
+
### Positive Notes ✅
|
|
105
|
+
[What's done well — always include at least one]
|
|
106
|
+
|
|
107
|
+
### Metrics
|
|
108
|
+
| Dimension | Score (1-5) | Notes |
|
|
109
|
+
|-----------|-------------|-------|
|
|
110
|
+
| Correctness | | |
|
|
111
|
+
| Security | | |
|
|
112
|
+
| Performance | | |
|
|
113
|
+
| Design | | |
|
|
114
|
+
| Readability | | |
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Language-Specific Checks
|
|
118
|
+
|
|
119
|
+
### Python
|
|
120
|
+
- Use `pathlib` over `os.path`
|
|
121
|
+
- Check for mutable default arguments (`def foo(x=[])`)
|
|
122
|
+
- Verify proper resource cleanup (`with` statements)
|
|
123
|
+
- Check for type annotation completeness
|
|
124
|
+
- Look for proper use of `async/await`
|
|
125
|
+
|
|
126
|
+
### JavaScript/TypeScript
|
|
127
|
+
- Check for `==` vs `===`
|
|
128
|
+
- Verify proper promise handling (no unhandled rejections)
|
|
129
|
+
- Look for memory leaks in event listeners / subscriptions
|
|
130
|
+
- Check TypeScript `any` usage
|
|
131
|
+
- Verify proper error boundaries in React
|
|
132
|
+
|
|
133
|
+
### Go
|
|
134
|
+
- Check error handling (no swallowed errors)
|
|
135
|
+
- Verify goroutine cleanup
|
|
136
|
+
- Look for unbuffered channels that could deadlock
|
|
137
|
+
- Check for proper context propagation
|
|
138
|
+
- Verify mutex usage and potential deadlocks
|
|
139
|
+
|
|
140
|
+
### Rust
|
|
141
|
+
- Check for unnecessary `.clone()`
|
|
142
|
+
- Verify lifetime annotations
|
|
143
|
+
- Look for potential panics (`unwrap()` in production)
|
|
144
|
+
- Check for proper error propagation with `?`
|
|
145
|
+
- Verify unsafe block justification
|
|
146
|
+
|
|
147
|
+
## Anti-Patterns to Always Flag
|
|
148
|
+
|
|
149
|
+
1. **God Function**: >50 lines doing too many things → Extract functions
|
|
150
|
+
2. **Magic Numbers**: Unnamed constants → Named constants or config
|
|
151
|
+
3. **Copy-Paste Code**: Duplicated logic → Extract shared function
|
|
152
|
+
4. **Premature Optimization**: Complex code for theoretical speedup → Benchmark first
|
|
153
|
+
5. **Over-Engineering**: Abstract factory for 2 implementations → Simplify
|
|
154
|
+
6. **Swallowed Errors**: `except: pass` or `.catch(() => {})` → At minimum, log it
|
|
155
|
+
7. **Global Mutable State**: Module-level mutable variables → Dependency injection
|
|
156
|
+
|
|
157
|
+
## Review Behavior Rules
|
|
158
|
+
|
|
159
|
+
1. **Always read the FULL diff before commenting** — partial reviews miss context
|
|
160
|
+
2. **Never suggest a rewrite** — suggest incremental improvements
|
|
161
|
+
3. **Always explain WHY** — "This is wrong" is not useful; "This causes X because Y" is
|
|
162
|
+
4. **Prioritize by impact** — Security > Correctness > Performance > Design > Style
|
|
163
|
+
5. **Be specific** — Point to exact lines, give exact fixes
|
|
164
|
+
6. **Acknowledge good code** — Reviews aren't just for finding problems
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
## Examples
|
|
168
|
+
|
|
169
|
+
```text
|
|
170
|
+
User: Apply this skill to my current task.
|
|
171
|
+
Assistant: Follow the workflow in this skill, cite limitations, and ask before risky steps.
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Limitations
|
|
175
|
+
|
|
176
|
+
- Imported upstream skill; verify credentials, permissions, and safety boundaries before execution.
|
|
177
|
+
- Does not replace environment-specific validation, testing, or maintainer review.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Codebase Onboarding
|
|
2
|
+
|
|
3
|
+
This is an official Ontoly Agent Skill. It is independently installable and teaches an agent how to use Ontoly for codebase onboarding.
|
|
4
|
+
|
|
5
|
+
## Version
|
|
6
|
+
|
|
7
|
+
- Skill version: 1.0.0
|
|
8
|
+
- Minimum Ontoly version: 1.0.0
|
|
9
|
+
- Required capabilities: `ExplainArchitecture`, `FindEntrypoints`, `GraphStatistics`, `FindFeatureOwner`, `EvidencePack`
|
|
10
|
+
- Enhancement: LLM Enhancement
|
|
11
|
+
- Deprecated: no
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
Install this skill with any Agent Skills compatible installer that supports `SKILL.md` directories, or copy this folder into your agent skills directory.
|
|
16
|
+
|
|
17
|
+
## Use
|
|
18
|
+
|
|
19
|
+
Ask the agent a task such as:
|
|
20
|
+
|
|
21
|
+
> What does this repository do?
|
|
22
|
+
|
|
23
|
+
The agent should build or verify the Ontoly graph, use MCP capabilities, cite evidence, and only inspect files as a fallback.
|
|
24
|
+
|
|
25
|
+
## Public Docs
|
|
26
|
+
|
|
27
|
+
- [Agent Skills](https://ontoly.xyz/docs/agent-skills)
|
|
28
|
+
- [Skills Overview](https://ontoly.xyz/docs/skills-overview)
|
|
29
|
+
- [MCP](https://ontoly.xyz/docs/mcp)
|
|
30
|
+
- [Capabilities](https://ontoly.xyz/docs/capabilities)
|
|
31
|
+
- [Skills Validation](https://ontoly.xyz/docs/skills-validation)
|
|
32
|
+
|
|
33
|
+
## Shared References
|
|
34
|
+
|
|
35
|
+
This skill depends on the shared Ontoly workflow in [reference/workflow.md](reference/workflow.md).
|
|
36
|
+
|
|
37
|
+
## Learn more
|
|
38
|
+
|
|
39
|
+
- Documentation: https://ontoly.xyz/docs
|
|
40
|
+
- This skill on the web: https://ontoly.xyz/skills#codebase-onboarding
|
|
41
|
+
- All Ontoly Agent Skills: https://ontoly.xyz/skills
|
|
42
|
+
- Install via skills.sh: https://www.skills.sh/?q=0xsarwagya/ontoly
|