[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6WX57VFC8SW0HSFJ2RB76QP":3,"skill-same:01M6WX57VFC8SW0HSFJ2RB76QP":88},{"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":61,"commitSha":62,"skillDirectory":63,"forksCount":14,"repositoryHtmlUrl":64,"repositoryHomepageUrl":65,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":67,"install":68,"resources":81},"01M6WX57VFC8SW0HSFJ2RB76QP","constraint-management",null,"Manage Constraint entities — rules and limits the project must respect (budget, latency SLO, team size, compliance). Use when recording a rule, limit, or boundary that affects decisions — budget ceiling, latency SLO, regulatory requirement, team bandwidth.","projectious-work\u002Fprocesskit","projectious-work","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F263889726?v=4","01M6N97TJJ118WQ35CHRV8RD0E","projectious.work","01M6N97TPWJPF0BMKYQ4PBY5W8",0,"MIT","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Farchive\u002Fprocesskit-install-20261101\u002Fcontext\u002Ftemplates\u002Fprocesskit\u002Fv0.10.0\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fconstraint-management\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"constraint management","management","constraint","latency","when","audit trail","v1","limit","recording","event","keep","team","project","manage","log","slo","use","decisions","work","Rules","2026-11-10 10:12:30",false,"---\nname: constraint-management\ndescription: |\n  Manage Constraint entities — rules and limits the project must respect (budget, latency SLO, team size, compliance). Use when recording a rule, limit, or boundary that affects decisions — budget ceiling, latency SLO, regulatory requirement, team bandwidth.\nmetadata:\n  processkit:\n    apiVersion: processkit.projectious.work\u002Fv1\n    id: SKILL-constraint-management\n    version: \"1.0.0\"\n    created: 2026-04-06T00:00:00Z\n    category: processkit\n    layer: 3\n    uses:\n      - skill: event-log\n        purpose: Log events to keep the audit trail accurate after every write.\n    provides:\n      primitives: [Constraint]\n      templates: [constraint]\n---\n\n# Constraint Management\n\n## Intro\n\nA Constraint is an explicit rule or limit the project must respect: budget\nceilings, latency SLOs, team capacity, compliance requirements, dependency\nrestrictions. Capturing constraints as first-class entities makes them\nreferenceable from decisions and visible to trade-off analysis.\n\n## Overview\n\n### Shape\n\n```yaml\n---\napiVersion: processkit.projectious.work\u002Fv1\nkind: Constraint\nmetadata:\n  id: CONST-p99-latency\n  created: 2026-04-06T00:00:00Z\nspec:\n  name: p99-latency\n  description: \"API p99 latency must stay under 200ms under normal load.\"\n  kind: slo             # budget | slo | regulatory | capacity | dependency | policy | other\n  severity: hard        # hard | soft | advisory\n  measurement: \"p99 of request duration over 5-minute windows\"\n  target: \"\u003C 200ms\"\n  source: \"Customer SLA, signed 2026-01-15\"\n  active: true\n---\n```\n\n### Workflow\n\n1. Pick `CONST-\u003Cshort-name>`.\n2. Set `kind` — budget, SLO, regulatory, capacity, dependency, policy, or other.\n3. Set `severity`: `hard` (cannot be violated), `soft` (flagged but overridable),\n   `advisory` (informational).\n4. Describe the `measurement` (how you know if it's met) and the `target`.\n5. Record the `source` — where the constraint came from (contract, regulation,\n   owner decision).\n\n### Using constraints\n\n- DecisionRecords link via `spec.related_constraints` when a decision was\n  shaped by a constraint.\n- WorkItems add `labels.constraint` when the work exists because of a constraint.\n- Processes reference constraints via Bindings (`type: process-constraint`)\n  for scoped constraints.\n\n## Gotchas\n\nAgent-specific failure modes — provider-neutral pause-and-self-check items:\n\n- **Constraint without a measurable threshold.** \"Performance must\n  be good\" is not a Constraint; \"p99 latency must be under 200ms\n  on the checkout endpoint\" is. Without a threshold, you can't\n  know whether the Constraint is satisfied.\n- **Treating Constraints as suggestions.** Constraints are\n  requirements. Decisions and WorkItems should explicitly reference\n  the relevant CONSTRAINT-ID and confirm compliance, not hand-wave.\n  If a Constraint is only sometimes true, it's a guideline, not a\n  Constraint.\n- **Forgetting the source \u002F owner of the Constraint.** Where did\n  this Constraint come from — legal, finance, oncall, the user's\n  preference? The source matters because lifting it requires going\n  back to the source. Always set `source` \u002F `owner` fields.\n- **Creating Constraints that contradict each other.** Two\n  Constraints saying \"ship as fast as possible\" and \"no production\n  changes after 5pm\" can both be valid, but the conflict must be\n  noted explicitly so decisions can choose between them. Silent\n  conflicts produce inconsistent behavior.\n- **Hand-waving \"complies with X\" without referencing the\n  CONSTRAINT-ID.** When a workitem or decision satisfies a\n  Constraint, link the CONSTRAINT-ID explicitly. \"We follow GDPR\"\n  with no link is unverifiable.\n- **Confusing Constraints with Decisions.** A Constraint is a\n  fixed rule the project respects (\"budget ≤ $50k\"); a Decision is\n  a choice someone made (\"we picked Postgres over MySQL\"). If\n  someone could change it tomorrow without external pressure, it's\n  a Decision.\n- **Constraints without expiry or review cadence.** Some\n  Constraints are temporary (\"hiring freeze through Q3\"). Set a\n  review date so the Constraint doesn't become permanent by\n  default.\n\n## Full reference\n\n### Fields\n\n| Field         | Type        | Notes                                                     |\n|---------------|-------------|-----------------------------------------------------------|\n| `name`        | string      | kebab-case identifier                                     |\n| `description` | string      | One sentence                                              |\n| `kind`        | enum        | `budget` \u002F `slo` \u002F `regulatory` \u002F `capacity` \u002F `dependency` \u002F `policy` \u002F `other` |\n| `severity`    | enum        | `hard` \u002F `soft` \u002F `advisory`                              |\n| `measurement` | string      | How the constraint is measured                            |\n| `target`      | string      | The threshold or boundary                                 |\n| `source`      | string      | Where the constraint comes from                           |\n| `active`      | bool        | `false` = no longer in effect                             |\n| `violations`  | list        | Log-style list of known violations (optional, prefer LogEntries) |\n\n### Constraint violations\n\nWhen a hard constraint is violated, write a `constraint.violated` LogEntry\nrather than editing the Constraint file. Repeated violations may motivate a\nDecisionRecord to relax the constraint or address the underlying cause.\n\n### Retiring a constraint\n\nSet `active: false` and log `constraint.retired`. Do not delete — historical\ndecisions may reference the constraint as part of their rationale.\n","# Constraint Management\n\n## Intro\n\nA Constraint is an explicit rule or limit the project must respect: budget\nceilings, latency SLOs, team capacity, compliance requirements, dependency\nrestrictions. Capturing constraints as first-class entities makes them\nreferenceable from decisions and visible to trade-off analysis.\n\n## Overview\n\n### Shape\n\n```yaml\n---\napiVersion: processkit.projectious.work\u002Fv1\nkind: Constraint\nmetadata:\n  id: CONST-p99-latency\n  created: 2026-04-06T00:00:00Z\nspec:\n  name: p99-latency\n  description: \"API p99 latency must stay under 200ms under normal load.\"\n  kind: slo             # budget | slo | regulatory | capacity | dependency | policy | other\n  severity: hard        # hard | soft | advisory\n  measurement: \"p99 of request duration over 5-minute windows\"\n  target: \"\u003C 200ms\"\n  source: \"Customer SLA, signed 2026-01-15\"\n  active: true\n---\n```\n\n### Workflow\n\n1. Pick `CONST-\u003Cshort-name>`.\n2. Set `kind` — budget, SLO, regulatory, capacity, dependency, policy, or other.\n3. Set `severity`: `hard` (cannot be violated), `soft` (flagged but overridable),\n   `advisory` (informational).\n4. Describe the `measurement` (how you know if it's met) and the `target`.\n5. Record the `source` — where the constraint came from (contract, regulation,\n   owner decision).\n\n### Using constraints\n\n- DecisionRecords link via `spec.related_constraints` when a decision was\n  shaped by a constraint.\n- WorkItems add `labels.constraint` when the work exists because of a constraint.\n- Processes reference constraints via Bindings (`type: process-constraint`)\n  for scoped constraints.\n\n## Gotchas\n\nAgent-specific failure modes — provider-neutral pause-and-self-check items:\n\n- **Constraint without a measurable threshold.** \"Performance must\n  be good\" is not a Constraint; \"p99 latency must be under 200ms\n  on the checkout endpoint\" is. Without a threshold, you can't\n  know whether the Constraint is satisfied.\n- **Treating Constraints as suggestions.** Constraints are\n  requirements. Decisions and WorkItems should explicitly reference\n  the relevant CONSTRAINT-ID and confirm compliance, not hand-wave.\n  If a Constraint is only sometimes true, it's a guideline, not a\n  Constraint.\n- **Forgetting the source \u002F owner of the Constraint.** Where did\n  this Constraint come from — legal, finance, oncall, the user's\n  preference? The source matters because lifting it requires going\n  back to the source. Always set `source` \u002F `owner` fields.\n- **Creating Constraints that contradict each other.** Two\n  Constraints saying \"ship as fast as possible\" and \"no production\n  changes after 5pm\" can both be valid, but the conflict must be\n  noted explicitly so decisions can choose between them. Silent\n  conflicts produce inconsistent behavior.\n- **Hand-waving \"complies with X\" without referencing the\n  CONSTRAINT-ID.** When a workitem or decision satisfies a\n  Constraint, link the CONSTRAINT-ID explicitly. \"We follow GDPR\"\n  with no link is unverifiable.\n- **Confusing Constraints with Decisions.** A Constraint is a\n  fixed rule the project respects (\"budget ≤ $50k\"); a Decision is\n  a choice someone made (\"we picked Postgres over MySQL\"). If\n  someone could change it tomorrow without external pressure, it's\n  a Decision.\n- **Constraints without expiry or review cadence.** Some\n  Constraints are temporary (\"hiring freeze through Q3\"). Set a\n  review date so the Constraint doesn't become permanent by\n  default.\n\n## Full reference\n\n### Fields\n\n| Field         | Type        | Notes                                                     |\n|---------------|-------------|-----------------------------------------------------------|\n| `name`        | string      | kebab-case identifier                                     |\n| `description` | string      | One sentence                                              |\n| `kind`        | enum        | `budget` \u002F `slo` \u002F `regulatory` \u002F `capacity` \u002F `dependency` \u002F `policy` \u002F `other` |\n| `severity`    | enum        | `hard` \u002F `soft` \u002F `advisory`                              |\n| `measurement` | string      | How the constraint is measured                            |\n| `target`      | string      | The threshold or boundary                                 |\n| `source`      | string      | Where the constraint comes from                           |\n| `active`      | bool        | `false` = no longer in effect                             |\n| `violations`  | list        | Log-style list of known violations (optional, prefer LogEntries) |\n\n### Constraint violations\n\nWhen a hard constraint is violated, write a `constraint.violated` LogEntry\nrather than editing the Constraint file. Repeated violations may motivate a\nDecisionRecord to relax the constraint or address the underlying cause.\n\n### Retiring a constraint\n\nSet `active: false` and log `constraint.retired`. Do not delete — historical\ndecisions may reference the constraint as part of their rationale.\n",{"name":5,"metadata":44,"description":60},{"processkit":45},{"id":46,"uses":47,"layer":51,"created":52,"version":53,"category":54,"provides":55,"apiVersion":59},"SKILL-constraint-management",[48],{"skill":49,"purpose":50},"event-log","Log events to keep the audit trail accurate after every write.",3,1775433600000,"1.0.0","processkit",{"templates":56,"primitives":57},[21],[58],"Constraint","processkit.projectious.work\u002Fv1","Manage Constraint entities — rules and limits the project must respect (budget, latency SLO, team size, compliance). Use when recording a rule, limit, or boundary that affects decisions — budget ceiling, latency SLO, regulatory requirement, team bandwidth.\n","main","4876a92620ee792aac2ac9a1a806322d8a572367","archive\u002Fprocesskit-install-20261101\u002Fcontext\u002Ftemplates\u002Fprocesskit\u002Fv0.10.0\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fconstraint-management","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit","https:\u002F\u002Fprojectious-work.github.io\u002Fprocesskit\u002F","https:\u002F\u002Fgithub.com\u002Fprojectious-work","2026-11-09 00:53:29",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add projectious-work\u002Fprocesskit --skill constraint-management",{"tool":74,"command":75},"bunx","bunx skills add projectious-work\u002Fprocesskit --skill constraint-management",{"tool":77,"command":78},"pnpm","pnpm dlx skills add projectious-work\u002Fprocesskit --skill constraint-management","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Farchive\u002Fprocesskit-install-20261101\u002Fcontext\u002Ftemplates\u002Fprocesskit\u002Fv0.10.0\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fconstraint-management\u002FSKILL.md",true,[82],{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"assets\u002Fconstraint.yaml","ASSET","资产文件",357,"https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Farchive\u002Fprocesskit-install-20261101\u002Fcontext\u002Ftemplates\u002Fprocesskit\u002Fv0.10.0\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fconstraint-management\u002Fassets\u002Fconstraint.yaml",[89,113,133,152,168,186],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":100,"publishedAt":39},"01M6X5MTC89B4ZGXW3JVSQCPF8","skill-management","Manage Skill package manifests as v1 ontology entities.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fskill-management\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[20,101,102,103,104,105,37,106,32,107,91,108,109,110,25,111,112],"skill management","create","update","package","alpha","list","ontology","get","as","manifests","skill package","transition",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":39},"01M6X5MCV74NHW5MEDNHZRF2C8","schema-management","Manage generated processkit schema contracts through deterministic MCP rebuild and inspection workflows.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fschema-management\u002FSKILL.md",[119],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},[20,121,122,123,124,125,105,37,126,127,32,128,129,130,108,131,132],"schema","schema management","MCP","workflows","validation","generated","rebuild","contracts","wed","deterministic","contract","mode",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":39},"01M6X5M5G6YJ96AMZGSCZJ1D13","proposition-management","Record claims, risks, beliefs, world facts, WSJF estimates, and assumptions through the Proposition interface.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fproposition-management\u002FSKILL.md",[],[20,140,141,102,103,142,105,37,33,143,144,145,108,146,28,147,148,149,150,151],"proposition","proposition management","index","world","record","query","creation","interface","updates","facts","claims","WSJF",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":39},"01M6X5KMQ83QN9M6MPWZM7344F","ontology-management","Manage generated v1 ontology entities that do not require a dedicated domain server.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fontology-management\u002FSKILL.md",[],[20,107,159,102,105,160,161,126,162,33,32,163,164,108,165,29,28,166,25,167],"ontology management","lifecycle","archive","roadmap","do","domain","iteration","measurement","generic",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":174,"publishedAt":39},"01M6X5KCY2DN3SM21RERSFNEBT","okf-compatibility","Import, export, and validate conformant Open Knowledge Format bundles.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fokf-compatibility\u002FSKILL.md",[],[175,176,177,178,105,179,180,181,37,182,183,184,185],"okf","compatibility","okf compatibility","validate","open","knowledge","format","export","bundles","bundle","import",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":39},"01M6X5JA8S5PNGJVFW4EQY8T83","capability-management","Manage versioned Capability entities and their governed lifecycle.","https:\u002F\u002Fgithub.com\u002Fprojectious-work\u002Fprocesskit\u002Fblob\u002Fmain\u002Fsrc\u002Fcontext\u002Fskills\u002Fprocesskit\u002Fcapability-management\u002FSKILL.md",[],[20,193,194,102,103,142,105,160,37,106,33,195,32,144,108,29,28,147,196,112],"capability","capability management","queries","changes"]