{
  "vercy": "1.0-draft",
  "publication": {
    "status": "research-draft",
    "adjudicationStatus": "unreviewed",
    "publishableCanonical": false,
    "generatedAt": "2026-09-11T14:17:01Z",
    "providers": [
      "Claude"
    ],
    "breadth": "written by Claude from model knowledge without web access - no source was read, every claim is a lead to verify",
    "pass": 2,
    "wave": 1,
    "engine": "claude",
    "enrichment": {
      "pass": 3,
      "engine": "claude",
      "producedAt": "2026-10-05T17:00:00Z",
      "ingestedAt": "2026-10-05T13:28:45+00:00",
      "fields": [
        "agent_conduct",
        "ethics",
        "owners"
      ]
    },
    "gate": {
      "passed": true,
      "version": "1.0",
      "at": "2026-10-06T19:52:02+00:00",
      "evidence": [
        "completeness 1.00",
        "sense: Wikidata description",
        "2 live sources",
        "review by codex: pass"
      ]
    }
  },
  "metaModel": {
    "id": "THING-Q80006",
    "registryId": "vr.tr.computer-programming",
    "name": "computer programming",
    "version": "0.2.0-wave.1",
    "entryKind": "thing",
    "family": "Thing Registry",
    "domain": [
      "ACT.ACT"
    ],
    "status": "research-draft"
  },
  "canonicalUrl": "https://ver.cy/models/thing/q80006/",
  "model": {
    "registry_id": "vr.tr.computer-programming",
    "name": "computer programming",
    "purpose": "Let an agent help people learn and practise programming, apply secure and maintainable techniques, choose tools, and recognise poor practices.",
    "definition": "The practice of designing, writing, testing, debugging and maintaining instructions that computers execute, using programming languages and tools, across paradigms such as procedural, object-oriented, functional and generic programming, and increasingly with AI assistance and prompt engineering.",
    "what_it_is_for": "Building software and automating tasks.",
    "affordances": [
      "learn programming basics",
      "debug and test code",
      "apply secure coding practices",
      "choose tools and paradigms"
    ],
    "distinguishing_features": [
      "Writes instructions for computers",
      "Uses languages and tools",
      "Requires testing",
      "Collaborative and versioned"
    ],
    "appearance": "Code in editors, version control repositories and running programs.",
    "visual_identification": [
      "Source code in text files",
      "Version control and tests",
      "Configuration is not always programming"
    ],
    "physical_properties": [],
    "families_and_kinds": [
      "procedural and object-oriented programming",
      "functional and generic programming",
      "systems and embedded programming",
      "web and data programming",
      "AI-assisted programming"
    ],
    "related_models": [
      {
        "relation": "is a kind of",
        "target": "skill and activity",
        "why": "category"
      },
      {
        "relation": "uses",
        "target": "programming language",
        "why": "tool"
      },
      {
        "relation": "produces",
        "target": "software",
        "why": "output"
      },
      {
        "relation": "uses",
        "target": "database",
        "why": "data storage"
      }
    ],
    "identifiers": [],
    "standards_and_regulation": [
      "Secure development guidance such as OWASP",
      "Software licensing",
      "Safety standards for critical software"
    ],
    "failure_modes_and_hazards": [
      "Security vulnerabilities",
      "Cargo cult practices",
      "Licence violations in copied code"
    ],
    "in_scope": [],
    "out_of_scope": [],
    "characteristics": [],
    "agent_conduct": {
      "may": [
        "Write, test and review code for systems it is authorized to work on.",
        "Explain programming concepts and help people learn.",
        "Run tests and report failures honestly."
      ],
      "must_not": [
        "Write malware or code intended to break into, damage or spy on systems or people.",
        "Deploy changes to production systems without the owner's approval and review.",
        "Copy code in breach of its licence or remove attribution.",
        "Hide known bugs or security flaws, or fake test results.",
        "Embed secrets such as passwords or keys in code."
      ],
      "requires_human": [
        "Deploying code to production or to systems that affect people's safety, money or data.",
        "Deleting repositories, data or history."
      ]
    },
    "ethics": {
      "considerations": [
        "Software now decides about people's credit, health and safety; careless code harms real lives.",
        "AI-assisted programming raises questions of credit, licensing and accountability for errors."
      ],
      "affected_parties": [
        "Users of the software",
        "People affected by automated decisions",
        "Developers and maintainers"
      ]
    },
    "owners": {
      "steward": "Nobody owns the practice; the owner of each codebase answers for its code.",
      "master_systems": [
        "Code repositories and version control histories"
      ]
    }
  },
  "sources": [
    {
      "id": "wikidata",
      "title": "Wikidata item Q80006: computer programming",
      "url": "https://www.wikidata.org/wiki/Q80006",
      "url_status": "live",
      "what_it_supports": "identity and sense of the item",
      "checked_by": "wikidata-api"
    },
    {
      "id": "wikipedia-en",
      "title": "Wikipedia: Computer programming",
      "url": "https://en.wikipedia.org/wiki/Computer_programming",
      "url_status": "live",
      "what_it_supports": "general description of the item",
      "checked_by": "wikidata-api sitelink"
    }
  ],
  "structure": {
    "bundles": [
      {
        "id": "learn",
        "name": "Learn",
        "description": "Getting started.",
        "rationale": "Practice builds skill.",
        "layers": [
          {
            "id": "start",
            "name": "Start",
            "description": "First steps.",
            "findings": [
              {
                "id": "start-finding",
                "name": "Start",
                "description": "First steps.",
                "questions": [
                  {
                    "text": "Which language and resources suit a beginner with this goal?",
                    "kind": "action"
                  },
                  {
                    "text": "What small project would help?",
                    "kind": "action"
                  }
                ]
              }
            ]
          },
          {
            "id": "concepts",
            "name": "Concepts",
            "description": "Core concepts.",
            "findings": [
              {
                "id": "concepts-finding",
                "name": "Concepts",
                "description": "Core concepts.",
                "questions": [
                  {
                    "text": "How do variables, loops, functions and data structures work?",
                    "kind": "definition"
                  },
                  {
                    "text": "Which example illustrates this concept?",
                    "kind": "action"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "practice",
        "name": "Practice",
        "description": "Quality.",
        "rationale": "Quality needs discipline.",
        "layers": [
          {
            "id": "debug",
            "name": "Debug",
            "description": "Debugging.",
            "findings": [
              {
                "id": "debug-finding",
                "name": "Debug",
                "description": "Debugging.",
                "questions": [
                  {
                    "text": "How can this bug be isolated and reproduced?",
                    "kind": "action"
                  },
                  {
                    "text": "Which tools help?",
                    "kind": "provenance"
                  }
                ]
              }
            ]
          },
          {
            "id": "testing",
            "name": "Testing",
            "description": "Tests.",
            "findings": [
              {
                "id": "testing-finding",
                "name": "Testing",
                "description": "Testing.",
                "questions": [
                  {
                    "text": "Which tests would catch this problem in future?",
                    "kind": "action"
                  },
                  {
                    "text": "How is coverage measured?",
                    "kind": "measurement"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "security",
        "name": "Security",
        "description": "Secure coding.",
        "rationale": "Security matters.",
        "layers": [
          {
            "id": "secure",
            "name": "Secure",
            "description": "Vulnerabilities.",
            "findings": [
              {
                "id": "secure-finding",
                "name": "Secure",
                "description": "Secure coding.",
                "questions": [
                  {
                    "text": "Does this code have common vulnerabilities such as injection or unsafe input handling?",
                    "kind": "boundary"
                  },
                  {
                    "text": "Which guidance explains the fix?",
                    "kind": "provenance"
                  }
                ]
              }
            ]
          },
          {
            "id": "misuse",
            "name": "Misuse",
            "description": "Harmful code.",
            "findings": [
              {
                "id": "misuse-finding",
                "name": "Misuse",
                "description": "Harmful code limits.",
                "questions": [
                  {
                    "text": "Does the request seek malware or unauthorised access tools?",
                    "kind": "boundary"
                  },
                  {
                    "text": "How should the agent decline?",
                    "kind": "action"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "work",
        "name": "Work",
        "description": "Collaboration.",
        "rationale": "Teams share code.",
        "layers": [
          {
            "id": "version",
            "name": "Version control",
            "description": "Collaboration.",
            "findings": [
              {
                "id": "version-finding",
                "name": "Version control",
                "description": "Version control.",
                "questions": [
                  {
                    "text": "How should version control and code review be used here?",
                    "kind": "action"
                  },
                  {
                    "text": "Which branching model suits the team?",
                    "kind": "provenance"
                  }
                ]
              }
            ]
          },
          {
            "id": "licence",
            "name": "Licence",
            "description": "Using others code.",
            "findings": [
              {
                "id": "licence-finding",
                "name": "Licence",
                "description": "Licensing.",
                "questions": [
                  {
                    "text": "Under what licence can this code be reused?",
                    "kind": "provenance"
                  },
                  {
                    "text": "What attribution is required?",
                    "kind": "provenance"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  "openQuestions": [
    "Should paradigms be separate entries?",
    "How should learning resources be linked?",
    "How should AI-assisted practices be described?"
  ],
  "statistics": {
    "bundles": 4,
    "layers": 8,
    "findings": 8,
    "questions": 16
  }
}
