Comparing sentry with forgecad
sentry
View full →Author
@JetBrains
Stars
56
Repository
JetBrains/skills
Sentry (Read-only Observability)
Quick start
- If not already authenticated, ask the user to provide a valid
SENTRY_AUTH_TOKEN(read-only scopes such asproject:read,event:read) or to log in and create one before running commands. - Set
SENTRY_AUTH_TOKENas an env var. - Optional defaults:
SENTRY_ORG,SENTRY_PROJECT,SENTRY_BASE_URL. - Defaults: org/project
{your-org}/{your-project}, time range24h, environmentprod, limit 20 (max 50). - Always call the Sentry API (no heuristics, no caching).
If the token is missing, give the user these steps:
- Create a Sentry auth token: https://sentry.io/settings/account/api/auth-tokens/
- Create a token with read-only scopes such as
project:read,event:read, andorg:read. - Set
SENTRY_AUTH_TOKENas an environment variable in their system. - Offer to guide them through setting the environment variable for their OS/shell if needed.
- Never ask the user to paste the full token in chat. Ask them to set it locally and confirm when ready.
Core tasks (use bundled script)
Use scripts/sentry_api.py for deterministic API calls. It handles pagination and retries once on transient errors.
Skill path (set once)
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export SENTRY_API="$CODEX_HOME/skills/sentry/scripts/sentry_api.py"
User-scoped skills install under $CODEX_HOME/skills (default: ~/.codex/skills).
1) List issues (ordered by most recent)
python3 "$SENTRY_API" \
list-issues \
--org {your-org} \
--project {your-project} \
--environment prod \
--time-range 24h \
--limit 20 \
--query "is:unresolved"
2) Resolve an issue short ID to issue ID
python3 "$SENTRY_API" \
list-issues \
--org {your-org} \
--project {your-project} \
--query "ABC-123" \
--limit 1
Use the returned id for issue detail or events.
3) Issue detail
python3 "$SENTRY_API" \
issue-detail \
1234567890
4) Issue events
python3 "$SENTRY_API" \
issue-events \
1234567890 \
--limit 20
5) Event detail (no stack traces by default)
python3 "$SENTRY_API" \
event-detail \
--org {your-org} \
--project {your-project} \
abcdef1234567890
API requirements
Always use these endpoints (GET only):
- List issues:
/api/0/projects/{org_slug}/{project_slug}/issues/ - Issue detail:
/api/0/issues/{issue_id}/ - Events for issue:
/api/0/issues/{issue_id}/events/ - Event detail:
/api/0/projects/{org_slug}/{project_slug}/events/{event_id}/
Inputs and defaults
org_slug,project_slug: default to{your-org}/{your-project}(avoid non-prod orgs).time_range: default24h(pass asstatsPeriod).environment: defaultprod.limit: default 20, max 50 (paginate until limit reached).search_query: optionalqueryparameter.issue_short_id: resolve via list-issues query first.
Output formatting rules
- Issue list: show title, short_id, status, first_seen, last_seen, count, environments, top_tags; order by most recent.
- Event detail: include culprit, timestamp, environment, release, url.
- If no results, state explicitly.
- Redact PII in output (emails, IPs). Do not print raw stack traces.
- Never echo auth tokens.
Golden test inputs
- Org:
{your-org} - Project:
{your-project} - Issue short ID:
{ABC-123}
Example prompt: “List the top 10 open issues for prod in the last 24h.” Expected: ordered list with titles, short IDs, counts, last seen.
forgecad
View full →Author
@KoStard
Stars
537
Repository
KoStard/ForgeCAD
ForgeCAD
Author or modify ForgeCAD models, sketches, assemblies, and CLI workflows. Prefer documented primitives, import rules, placement strategies, and CLI commands over inventing new APIs.
Workflow
- Identify the artifact:
.forge.js, SVG asset, or CLI/export task. - If the model has any moving parts, load the
assemblygroup AND thejoint-design.mdrecipe upfront — do not defer the kinematic structure to a refactor pass. - Load only the docs the task needs (see Source Map below). Start from the top group, add others as needed.
- If any two parts are intended to touch or mate in the final model, load the positioning guide immediately and default to connectors +
matchTo(). - Default to a concrete first pass — easy iteration beats speculative design review.
- If an existing model is broken, replace the weak structure rather than preserving bad architecture.
- Validate with
forgecad run <file>(add--debug-importsfor import chain issues, and pass--backend manifold|occtwhen the backend matters). - For
jointsView()animations, keep wrapped revolute tracks continuous across branch cuts; do not assume the viewport will auto-fix-180/180jumps.
Import and Composition
require("./file.forge.js", { Param: value })for any model file, with optional param overrides.- For static multi-part models, connectors +
matchTo()are the default way to assemble touching parts. - Top-level scripts can return
AssemblyorSolvedAssemblydirectly. Do not call.toGroup()just to render an assembly; use.toGroup()only when you needShapeGroupcomposition, transforms, or named-child lookup. importSvgSketch()for SVG files (file format loader, not a module import)..placeReference('bottom', [0,0,0])to align any built-in anchor to a world coordinate; also works with custom.withReferences().- Plain
.jsmodules for shared helpers/constants (not model imports).
Source Map
Load groups top-to-bottom, stopping when you have what the task needs.
1. Core API (always read first)
Execution model, colors, coordinate system, primitives, booleans, patterns, imports, parameters, topology, edge queries.
{{SKILL_DIR}}/docs/API/core/concepts.md{{SKILL_DIR}}/docs/generated/core.md
2. Static Assembly and Positioning (for any multi-part model)
Axis conventions, winding rules, and placement strategy. If parts should touch in the final model, read this group before writing placement code. Connectors + matchTo() are the default for mating interfaces; raw translate() and rotate() are for free offsets, not assembly contracts.
{{SKILL_DIR}}/docs/guides/coordinate-system.md{{SKILL_DIR}}/docs/guides/geometry-conventions.md{{SKILL_DIR}}/docs/guides/positioning.md
3. Sketch APIs
2D construction, transforms, booleans, paths, on-face sketching, extrusion, anchors, text, regions.
{{SKILL_DIR}}/docs/generated/sketch.md
4. Curves and Surfacing (for lofts, sweeps, splines)
Smooth curves, Hermite splines, lofted and swept solids.
{{SKILL_DIR}}/docs/generated/curves.md
5. Assemblies and Mechanisms (for joints or kinematics)
Assembly graph, joint types, couplings, validation, robot export.
{{SKILL_DIR}}/docs/generated/assembly.md
6. Sheet Metal (for bent parts, K-factor, flat patterns)
Bend operations, flat pattern unfolding, K-factor configuration.
{{SKILL_DIR}}/docs/generated/sheet-metal.md
7. Output and Export (for STL/3MF/STEP, BOM, dimensions)
Mesh export, exact geometry export, bill of materials, dimension annotations.
{{SKILL_DIR}}/docs/generated/output.md
8. Toolbox (fasteners and standard parts)
Parametric bolts, nuts, washers, standard hardware, gears, pipes, and structural profiles.
{{SKILL_DIR}}/docs/generated/lib.md{{SKILL_DIR}}/docs/generated/wood.md
9. Runtime Viewport APIs (for cut planes, jointsView, and animation playback)
Viewer-only APIs such as cutPlane, explodeView, jointsView, and animation behavior.
{{SKILL_DIR}}/docs/generated/viewport.md
10. Recipes and Debugging (for patterns and troubleshooting)
Modeling patterns, debugging tactics, copyable snippets.
{{SKILL_DIR}}/docs/guides/modeling-recipes.md{{SKILL_DIR}}/docs/guides/joint-design.md
11. CLI (for validation/render/export tasks)
Test-run, export pipelines, debug flags.
{{SKILL_DIR}}/docs/CLI.md{{SKILL_DIR}}/docs/guides/inspection-bundles.md
SDF Modeling — Experimental (smooth booleans, TPMS, deformations, fromFunction)
Primitives, smooth booleans, TPMS lattices, twist/bend/displace, morph, custom functions, gotchas. Experimental — slower render, lower mesh quality than B-rep.
{{SKILL_DIR}}/docs/generated/sdf.md