[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KKXC0P2AV44WT7P02KRTAR":3,"skill-same:01M6KKXC0P2AV44WT7P02KRTAR":72},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":65},"01M6KKXC0P2AV44WT7P02KRTAR","objective-close",null,"Close an existing Objective without deleting its checked-in history — record a ## Closure in objective.md and write the closed marker. Use for explicit close intent: 'close this objective', 'mark the objective done', 'abandon this objective', 'park\u002Fdefer this objective', or an explicit user request to reopen a closed one. To record progress short of closing, or to let closure happen automatically when completion criteria are clearly met, use objective-update instead.","nseng-ai\u002Fns","nseng-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F273792438?v=4","01M6KKN105A07WPV2TZKZXZGQF","nseng.ai","01M6KKN14MDSR9VF9739AWXG8M",2,"MIT","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Fincubating\u002Fobjectives\u002Fobjective-close\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"objective close","close","progress","request","closure","Existing","for","true","closing","mark","update","user request","done","record","intent","park","use","write","short","history","2026-11-10 10:12:30",false,"---\nname: objective-close\ndisable-model-invocation: true\ndescription: \"Close an existing Objective without deleting its checked-in history — record a ## Closure in objective.md and write the closed marker. Use for explicit close intent: 'close this objective', 'mark the objective done', 'abandon this objective', 'park\u002Fdefer this objective', or an explicit user request to reopen a closed one. To record progress short of closing, or to let closure happen automatically when completion criteria are clearly met, use objective-update instead.\"\n---\n\n# objective-close\n\nUse the `objective` umbrella skill first for shared vocabulary, selection rules, storage model, safety boundaries, and family policy.\n\n## Resolve the Objective\n\nResolve exactly one Objective per the umbrella skill's Selection rules; the umbrella also owns the storage model and required file shapes — this skill does not restate them. The closure-specific delta: closing adds `## Closure` to `objective.md` and writes `closed.md`, and keeps the existing slug directory in place. Objective records are Markdown; read and edit them directly, using `ns objective exec` for deterministic read mechanics.\n\n## Workflow\n\n1. Run `ns objective exec read-objective \u003Cslug> --format md` to load the selected record's raw Markdown and closed state.\n2. If already closed, stop per Stop \u002F ask.\n3. Load every edge-connected Objective before authoring closure: run `ns objective show \u003Cslug> --format md --should-include-closed-edges` to inventory counterpart states and both Edge Annotations (the flag is required: the default view hides edges whose counterpart is closed, and step 8 must assign a disposition — including `already closed` — to every declared edge), then run `ns objective exec read-objective \u003Ccounterpart> --format md` for each counterpart. Read each active counterpart's `objective.md`, `roadmap.md`, and recent relevant updates; read `orientation.md` when present.\n4. Confirm the closure outcome is clear: **completed**, **abandoned**, **deferred** (deliberately parked), or **superseded** (another record or landed reality took over), with concise evidence or rationale. Use these outcome words in the Closure Marker so closed records stay machine-legible. A deferred closure must include an explicit restart pointer in `## Closure`: which roadmap rows resume, what recorded evidence can be trusted as-is, and what must be re-baselined against the then-current tree. For an Umbrella Objective (see the `objective` skill's Objective patterns reference), also record cross-child lessons and synthesized closure evidence in the parent; open Subobjectives gate closure per Stop \u002F ask.\n5. Add or update `## Closure` in `objective.md` with outcome, key evidence, remaining assumptions or risks, caveats, and follow-ups if any. Also judge whether the record holds durable architecture facts — storage models, conventions, contracts, decided semantics — that no doc, README, or `CONTEXT.md` owns; if so, name the graduation candidates (fact → target doc) in `## Closure` rather than letting a closed record become the only home of load-bearing documentation.\n6. When material PR evidence supports the completed or abandoned outcome, summarize it in `## Closure` with PR numbers and Objective impact, using the shared Objective PR evidence convention from the `objective` umbrella skill when a list is clearer than prose. Do not turn closure PR evidence into a broad PR ledger or historical backfill.\n7. Re-judge the closing record's own Blocked Sentence. A closing record should not keep a live `blocked:` sentence; normally remove it as part of closure.\n8. Propagate the closure through every Objective Edge. For each counterpart, use both Edge Annotations plus its full current record to assign and act on one disposition:\n   - **`updated`.** Closure changes the active counterpart's durable meaning. Edit every affected surface needed to make its post-closure state true: clear or reword a Blocked Sentence; reword stale Edge Annotations on both endpoints; advance or complete synthesis\u002Fdependency rows in `roadmap.md`; update assumptions, risks, open questions, sequencing, or closure-adjacent narrative in `objective.md`; and re-derive `orientation.md` when the counterpart is orienting. Write a new Semantic Update under that counterpart when the event is a meaningful finding, completion event, plan change, risk change, or follow-up. Existing updates remain immutable.\n   - **`unchanged`.** Closure has no durable effect on the active counterpart. Make no edits there and record a concise reason in the final report; an edge by itself does not justify churn.\n   - **`already closed`.** Do not amend the counterpart unless the user explicitly requested it; report that no live tracking needed propagation.\n     Common effects to look for are unblocking work, parent\u002FUmbrella synthesis, dependency completion, changed sequencing, retired assumptions or risks, and newly exposed follow-up. Do not recursively close a counterpart as a side effect: if propagation leaves it closure-ready, report that and route it through a separate Objective Close.\n9. Keep all Objective Edges in place unless closure itself proves an annotation's relationship is false; closure alone does not dissolve an edge. When only the relationship wording changed, reword both mirrored Edge Annotations rather than removing the edge.\n10. Run `ns objective check --all` after any Record Frontmatter edit. Fix every structural error before continuing.\n11. If the closing Objective has an `orientation.md`, consult `roadmap.md`'s completion section and the durable `Direction`\u002F`Getting to` lines of `orientation.md`. If a durable rule should survive the initiative, note it in `## Closure` (or to the user) as a candidate to graduate into AGENTS.md \"Architecture rules\". Do not delete `orientation.md`: writing `closed.md` drops it from the always-load set automatically.\n12. Write `closed.md` as a minimal Closure Marker. Put closure meaning in `objective.md`, not in `closed.md`.\n13. Leave `.ns\u002Fobjectives\u002F\u003Cslug>\u002F` in place; deletion is source-controlled per the umbrella skill, never part of close. Reopening happens only on an explicit user request, as its own workflow (see Reopen below) — never as part of a close.\n\n## Reopen\n\nThere is no routine reopen path: do not reopen to record progress, amend closure context, or because completion criteria later look unmet — those are `objective-update` or amend-closure conversations. On an **explicit user request** to reopen a closed Objective:\n\n1. Delete `closed.md`.\n2. Amend `## Closure` into a dated history rather than deleting it: keep the original closure text and append a `Reopened \u003Cdate>:` line with the reason and what changed since closure.\n3. Re-run the connected-Objective impact review in the reverse direction: restore or reword this record's `blocked:` sentence if a real gate exists, and re-judge every active counterpart whose frontmatter, narrative, roadmap, orientation, or Semantic Updates were affected by closure. Write new corrective Semantic Updates where reopening materially changes tracking; never amend the close-time updates.\n4. If the record has an `orientation.md`, it rejoins the always-load set automatically once `closed.md` is gone; re-read it for staleness against the current tree before relying on it.\n5. If the record closed as deferred with a restart pointer, start from that pointer and re-baseline whatever it marked as volatile.\n6. Run `ns objective check \u003Cslug>` after any frontmatter edit.\n\n## Closure timing\n\nClosure does not have to wait for the closing work to land on the trunk branch. When the same branch and PR that finishes the Objective also writes `## Closure` and `closed.md`, the merge of that PR is the closure event on the trunk. Couple Objective tracking with the work that triggered it: prefer closing on the branch that ships the final work over carrying closure to a follow-up PR.\n\nDo not create a duplicate Semantic Update solely for closure. Create one only when closure introduces distinct semantic information beyond the normal update guidance.\n\n## Stop \u002F ask\n\n- Objective selection is ambiguous or absent.\n- Required Objective files are missing.\n- The closure outcome or rationale is unclear.\n- The record is an Umbrella Objective with Subobjectives still open that the user has not explicitly parked and synthesized.\n- The Objective is already closed and the user did not ask to amend closure context.\n- The user asks to delete or move the Objective as part of close; for removal from active checkout state, redirect per the Workflow's source-control deletion rule (step 9). A reopen folded into a close is also a stop: reopen is its own explicit user request handled by the Reopen section.\n\n## Verify\n\n- Confirm `objective.md` contains `## Closure`.\n- Confirm `closed.md` exists under the selected Objective directory and its outcome uses the standard vocabulary (completed \u002F abandoned \u002F deferred \u002F superseded, optionally qualified).\n- For a deferred outcome, confirm `## Closure` carries an explicit restart pointer.\n- Confirm the Objective directory remains under `.ns\u002Fobjectives\u002F\u003Cslug>\u002F`.\n- If an `orientation.md` was present, confirm it was left in place (not deleted) and any durable-rule graduation candidate was noted.\n- If the closing record declared edges, confirm every counterpart received an explicit `updated`, `unchanged`, or `already closed` disposition based on both Edge Annotations and the counterpart's full current tracking — not only its Blocked Sentence.\n- For each `updated` counterpart, confirm its durable files express the post-closure state, any warranted Semantic Update is new and counterpart-local, existing updates were not modified, and an orienting counterpart's `orientation.md` was re-derived when needed.\n- Confirm no counterpart was recursively closed; report any counterpart now closure-ready.\n- Confirm edges remain mirrored and were not removed merely because one endpoint closed.\n- If any Record Frontmatter was edited, confirm `ns objective check --all` reports no structural errors.\n- Summarize the closure outcome, connected-Objective dispositions and files changed, and note that closed Objectives are no longer eligible for `objective-next` by default.\n","# objective-close\n\nUse the `objective` umbrella skill first for shared vocabulary, selection rules, storage model, safety boundaries, and family policy.\n\n## Resolve the Objective\n\nResolve exactly one Objective per the umbrella skill's Selection rules; the umbrella also owns the storage model and required file shapes — this skill does not restate them. The closure-specific delta: closing adds `## Closure` to `objective.md` and writes `closed.md`, and keeps the existing slug directory in place. Objective records are Markdown; read and edit them directly, using `ns objective exec` for deterministic read mechanics.\n\n## Workflow\n\n1. Run `ns objective exec read-objective \u003Cslug> --format md` to load the selected record's raw Markdown and closed state.\n2. If already closed, stop per Stop \u002F ask.\n3. Load every edge-connected Objective before authoring closure: run `ns objective show \u003Cslug> --format md --should-include-closed-edges` to inventory counterpart states and both Edge Annotations (the flag is required: the default view hides edges whose counterpart is closed, and step 8 must assign a disposition — including `already closed` — to every declared edge), then run `ns objective exec read-objective \u003Ccounterpart> --format md` for each counterpart. Read each active counterpart's `objective.md`, `roadmap.md`, and recent relevant updates; read `orientation.md` when present.\n4. Confirm the closure outcome is clear: **completed**, **abandoned**, **deferred** (deliberately parked), or **superseded** (another record or landed reality took over), with concise evidence or rationale. Use these outcome words in the Closure Marker so closed records stay machine-legible. A deferred closure must include an explicit restart pointer in `## Closure`: which roadmap rows resume, what recorded evidence can be trusted as-is, and what must be re-baselined against the then-current tree. For an Umbrella Objective (see the `objective` skill's Objective patterns reference), also record cross-child lessons and synthesized closure evidence in the parent; open Subobjectives gate closure per Stop \u002F ask.\n5. Add or update `## Closure` in `objective.md` with outcome, key evidence, remaining assumptions or risks, caveats, and follow-ups if any. Also judge whether the record holds durable architecture facts — storage models, conventions, contracts, decided semantics — that no doc, README, or `CONTEXT.md` owns; if so, name the graduation candidates (fact → target doc) in `## Closure` rather than letting a closed record become the only home of load-bearing documentation.\n6. When material PR evidence supports the completed or abandoned outcome, summarize it in `## Closure` with PR numbers and Objective impact, using the shared Objective PR evidence convention from the `objective` umbrella skill when a list is clearer than prose. Do not turn closure PR evidence into a broad PR ledger or historical backfill.\n7. Re-judge the closing record's own Blocked Sentence. A closing record should not keep a live `blocked:` sentence; normally remove it as part of closure.\n8. Propagate the closure through every Objective Edge. For each counterpart, use both Edge Annotations plus its full current record to assign and act on one disposition:\n   - **`updated`.** Closure changes the active counterpart's durable meaning. Edit every affected surface needed to make its post-closure state true: clear or reword a Blocked Sentence; reword stale Edge Annotations on both endpoints; advance or complete synthesis\u002Fdependency rows in `roadmap.md`; update assumptions, risks, open questions, sequencing, or closure-adjacent narrative in `objective.md`; and re-derive `orientation.md` when the counterpart is orienting. Write a new Semantic Update under that counterpart when the event is a meaningful finding, completion event, plan change, risk change, or follow-up. Existing updates remain immutable.\n   - **`unchanged`.** Closure has no durable effect on the active counterpart. Make no edits there and record a concise reason in the final report; an edge by itself does not justify churn.\n   - **`already closed`.** Do not amend the counterpart unless the user explicitly requested it; report that no live tracking needed propagation.\n     Common effects to look for are unblocking work, parent\u002FUmbrella synthesis, dependency completion, changed sequencing, retired assumptions or risks, and newly exposed follow-up. Do not recursively close a counterpart as a side effect: if propagation leaves it closure-ready, report that and route it through a separate Objective Close.\n9. Keep all Objective Edges in place unless closure itself proves an annotation's relationship is false; closure alone does not dissolve an edge. When only the relationship wording changed, reword both mirrored Edge Annotations rather than removing the edge.\n10. Run `ns objective check --all` after any Record Frontmatter edit. Fix every structural error before continuing.\n11. If the closing Objective has an `orientation.md`, consult `roadmap.md`'s completion section and the durable `Direction`\u002F`Getting to` lines of `orientation.md`. If a durable rule should survive the initiative, note it in `## Closure` (or to the user) as a candidate to graduate into AGENTS.md \"Architecture rules\". Do not delete `orientation.md`: writing `closed.md` drops it from the always-load set automatically.\n12. Write `closed.md` as a minimal Closure Marker. Put closure meaning in `objective.md`, not in `closed.md`.\n13. Leave `.ns\u002Fobjectives\u002F\u003Cslug>\u002F` in place; deletion is source-controlled per the umbrella skill, never part of close. Reopening happens only on an explicit user request, as its own workflow (see Reopen below) — never as part of a close.\n\n## Reopen\n\nThere is no routine reopen path: do not reopen to record progress, amend closure context, or because completion criteria later look unmet — those are `objective-update` or amend-closure conversations. On an **explicit user request** to reopen a closed Objective:\n\n1. Delete `closed.md`.\n2. Amend `## Closure` into a dated history rather than deleting it: keep the original closure text and append a `Reopened \u003Cdate>:` line with the reason and what changed since closure.\n3. Re-run the connected-Objective impact review in the reverse direction: restore or reword this record's `blocked:` sentence if a real gate exists, and re-judge every active counterpart whose frontmatter, narrative, roadmap, orientation, or Semantic Updates were affected by closure. Write new corrective Semantic Updates where reopening materially changes tracking; never amend the close-time updates.\n4. If the record has an `orientation.md`, it rejoins the always-load set automatically once `closed.md` is gone; re-read it for staleness against the current tree before relying on it.\n5. If the record closed as deferred with a restart pointer, start from that pointer and re-baseline whatever it marked as volatile.\n6. Run `ns objective check \u003Cslug>` after any frontmatter edit.\n\n## Closure timing\n\nClosure does not have to wait for the closing work to land on the trunk branch. When the same branch and PR that finishes the Objective also writes `## Closure` and `closed.md`, the merge of that PR is the closure event on the trunk. Couple Objective tracking with the work that triggered it: prefer closing on the branch that ships the final work over carrying closure to a follow-up PR.\n\nDo not create a duplicate Semantic Update solely for closure. Create one only when closure introduces distinct semantic information beyond the normal update guidance.\n\n## Stop \u002F ask\n\n- Objective selection is ambiguous or absent.\n- Required Objective files are missing.\n- The closure outcome or rationale is unclear.\n- The record is an Umbrella Objective with Subobjectives still open that the user has not explicitly parked and synthesized.\n- The Objective is already closed and the user did not ask to amend closure context.\n- The user asks to delete or move the Objective as part of close; for removal from active checkout state, redirect per the Workflow's source-control deletion rule (step 9). A reopen folded into a close is also a stop: reopen is its own explicit user request handled by the Reopen section.\n\n## Verify\n\n- Confirm `objective.md` contains `## Closure`.\n- Confirm `closed.md` exists under the selected Objective directory and its outcome uses the standard vocabulary (completed \u002F abandoned \u002F deferred \u002F superseded, optionally qualified).\n- For a deferred outcome, confirm `## Closure` carries an explicit restart pointer.\n- Confirm the Objective directory remains under `.ns\u002Fobjectives\u002F\u003Cslug>\u002F`.\n- If an `orientation.md` was present, confirm it was left in place (not deleted) and any durable-rule graduation candidate was noted.\n- If the closing record declared edges, confirm every counterpart received an explicit `updated`, `unchanged`, or `already closed` disposition based on both Edge Annotations and the counterpart's full current tracking — not only its Blocked Sentence.\n- For each `updated` counterpart, confirm its durable files express the post-closure state, any warranted Semantic Update is new and counterpart-local, existing updates were not modified, and an orienting counterpart's `orientation.md` was re-derived when needed.\n- Confirm no counterpart was recursively closed; report any counterpart now closure-ready.\n- Confirm edges remain mirrored and were not removed merely because one endpoint closed.\n- If any Record Frontmatter was edited, confirm `ns objective check --all` reports no structural errors.\n- Summarize the closure outcome, connected-Objective dispositions and files changed, and note that closed Objectives are no longer eligible for `objective-next` by default.\n",{"name":5,"description":7,"disable-model-invocation":44},true,"master","44a56f0d543f274b42239091b35fe4d23855f6b3","skills\u002Fincubating\u002Fobjectives\u002Fobjective-close",0,"https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns","https:\u002F\u002Fgithub.com\u002Fnseng-ai","Keeping the clankers in check: Nonslop Engineering for AI","2026-10-02 12:48:53",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":44},[55,58,61],{"tool":56,"command":57},"npx","npx skills add nseng-ai\u002Fns --skill objective-close",{"tool":59,"command":60},"bunx","bunx skills add nseng-ai\u002Fns --skill objective-close",{"tool":62,"command":63},"pnpm","pnpm dlx skills add nseng-ai\u002Fns --skill objective-close","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Fincubating\u002Fobjectives\u002Fobjective-close\u002FSKILL.md",[66],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"agents\u002Fopenai.yaml","REFERENCE","参考文档",43,"https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Fincubating\u002Fobjectives\u002Fobjective-close\u002Fagents\u002Fopenai.yaml",[73,94,123,146,169,180],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":39},"01M6KM3VZ7JC4S6R4KATJ368EH","pr-make-accountable","Interview a PR author to establish shared understanding of intent and design decisions, then co-author the What \u002F Why \u002F Changes PR body with opt-in Requested reviewer focus.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Fpublic\u002Fprs\u002Fpr-make-accountable\u002FSKILL.md",[],[80,81,82,83,84,85,86,87,33,88,89,90,91,26,92,93],"pr","make","pr make accountable","design","why","reviewer","decisions","interview","focus","shared","co","with","changes","pr body",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":105,"publishedAt":39},"01M6KM3NZCZ86VJ91RSVTRGTJW","typescript-style","Opinionated style guide for strict, portable TypeScript. Use when writing, designing, or reviewing TypeScript: type design, boundary validation, error handling, module architecture, and review discipline.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Ftypescript\u002Ftypescript-style\u002FSKILL.md",[100],{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[106,107,108,83,109,110,111,112,113,114,115,116,35,117,118,119,120,121,122,25],"typescript","style","typescript style","writing","review","architecture","core","error handling","system","Rules","README","error-handling","study","module","error","case-study","style guide",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":132,"publishedAt":39},"01M6KM3HNY4WY42KMYRPS6KEJZ","typescript-fake-driven-testing","TypeScript fake-driven testing architecture. Use when writing or reviewing TS code with external dependencies, gateway interfaces, real adapters, in-memory fakes, or CLI scenario tests.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Ftypescript\u002Ftypescript-fake-driven-testing\u002FSKILL.md",[129],{"categoryNo":130,"categoryName":131,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000008","测试与质量",[133,106,134,135,136,109,137,138,111,139,140,35,141,142,143,144,91,145],"testing","driven","fake driven testing","typescript fake driven testing","cli","memory","code","gateway","dependencies","tests","scenario","Adapters","in-memory",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":39},"01M6KM3AXC2539PENYVZJYKCP9","ns-typescript","TypeScript overlay for ns-style projects. Use when editing or reviewing TS in this repo: tsconfig baseline, pnpm\u002FVitest\u002Foxlint\u002Foxfmt\u002Fnative tsc commands, relative .ts imports, workspace subpath exports, and the exactOptionalPropertyTypes spread idiom. Repo-specific enforcement (test lanes, time seams, style guard) lives in the host repo's AGENTS.md.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Ftypescript\u002Fns-typescript\u002FSKILL.md",[],[106,153,154,155,156,157,158,159,35,160,161,162,163,107,164,165,166,25,167,168],"ns typescript","test","guard","vitest","projects","editing","repo","enforcement","references","time","host","oxlint","import","native","alternatives","imports",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":39},"01M6KM36Y5KZ5V48M58MT42AHM","ns-typescript-style-tripwire","Invoke the ns TypeScript style Tripwire against a supplied diff or current branch.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Ftypescript\u002Fns-typescript-style-tripwire\u002FSKILL.md",[],[106,176,107,177,178,179,26],"tripwire","ns typescript style tripwire","branch","diff",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":189,"publishedAt":39},"01M6KM313HANS0AV181X37ZM45","skill-management","Manage skills with `npx skills`: add, edit, remove, rename, update, or list skills (local or GitHub), and the nested `skills\u002F\u003Cdisposition>\u002F...\u002F\u003Cname>\u002F` \u002F flat `.agents\u002Fskills\u002F` layout conventions.","https:\u002F\u002Fgithub.com\u002Fnseng-ai\u002Fns\u002Fblob\u002Fmaster\u002Fskills\u002Finternal\u002Fskill-system\u002Fskill-management\u002FSKILL.md",[186],{"categoryNo":187,"categoryName":188,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000023","Skill与智能体开发",[190,191,192,193,194,179,195,196,56,197,198,91,199,200,201,202,203,204,26,205],"management","skill management","github","Bash","remove","nested","manage","local","cat","ln","ls","mkdir","mv","readlink","rg","lock"]