From a94650a5be629e5f4f0788228a02fff0c74afbc8 Mon Sep 17 00:00:00 2001
From: TevinClaw <510129976@qq.com>
Date: Sat, 14 Mar 2026 12:26:27 +0800
Subject: [PATCH] 添加次 agent lifehelper 基本配置

---
 workspace/skills/ontology/references/schema.md |  322 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 322 insertions(+), 0 deletions(-)

diff --git a/workspace/skills/ontology/references/schema.md b/workspace/skills/ontology/references/schema.md
new file mode 100644
index 0000000..094c894
--- /dev/null
+++ b/workspace/skills/ontology/references/schema.md
@@ -0,0 +1,322 @@
+# Ontology Schema Reference
+
+Full type definitions and constraint patterns for the ontology graph.
+
+## Core Types
+
+### Agents & People
+
+```yaml
+Person:
+  required: [name]
+  properties:
+    name: string
+    email: string?
+    phone: string?
+    organization: ref(Organization)?
+    notes: string?
+    tags: string[]?
+
+Organization:
+  required: [name]
+  properties:
+    name: string
+    type: enum(company, team, community, government, other)?
+    website: url?
+    members: ref(Person)[]?
+```
+
+### Work Management
+
+```yaml
+Project:
+  required: [name]
+  properties:
+    name: string
+    description: string?
+    status: enum(planning, active, paused, completed, archived)
+    owner: ref(Person)?
+    team: ref(Person)[]?
+    goals: ref(Goal)[]?
+    start_date: date?
+    end_date: date?
+    tags: string[]?
+
+Task:
+  required: [title, status]
+  properties:
+    title: string
+    description: string?
+    status: enum(open, in_progress, blocked, done, cancelled)
+    priority: enum(low, medium, high, urgent)?
+    assignee: ref(Person)?
+    project: ref(Project)?
+    due: datetime?
+    estimate_hours: number?
+    blockers: ref(Task)[]?
+    tags: string[]?
+
+Goal:
+  required: [description]
+  properties:
+    description: string
+    target_date: date?
+    status: enum(active, achieved, abandoned)?
+    metrics: object[]?
+    key_results: string[]?
+```
+
+### Time & Location
+
+```yaml
+Event:
+  required: [title, start]
+  properties:
+    title: string
+    description: string?
+    start: datetime
+    end: datetime?
+    location: ref(Location)?
+    attendees: ref(Person)[]?
+    recurrence: object?  # iCal RRULE format
+    status: enum(confirmed, tentative, cancelled)?
+    reminders: object[]?
+
+Location:
+  required: [name]
+  properties:
+    name: string
+    address: string?
+    city: string?
+    country: string?
+    coordinates: object?  # {lat, lng}
+    timezone: string?
+```
+
+### Information
+
+```yaml
+Document:
+  required: [title]
+  properties:
+    title: string
+    path: string?  # Local file path
+    url: url?      # Remote URL
+    mime_type: string?
+    summary: string?
+    content_hash: string?
+    tags: string[]?
+
+Message:
+  required: [content, sender]
+  properties:
+    content: string
+    sender: ref(Person)
+    recipients: ref(Person)[]
+    thread: ref(Thread)?
+    timestamp: datetime
+    platform: string?  # email, slack, whatsapp, etc.
+    external_id: string?
+
+Thread:
+  required: [subject]
+  properties:
+    subject: string
+    participants: ref(Person)[]
+    messages: ref(Message)[]
+    status: enum(active, archived)?
+    last_activity: datetime?
+
+Note:
+  required: [content]
+  properties:
+    content: string
+    title: string?
+    tags: string[]?
+    refs: ref(Entity)[]?  # Links to any entity
+    created: datetime
+```
+
+### Resources
+
+```yaml
+Account:
+  required: [service, username]
+  properties:
+    service: string  # github, gmail, aws, etc.
+    username: string
+    url: url?
+    credential_ref: ref(Credential)?
+
+Device:
+  required: [name, type]
+  properties:
+    name: string
+    type: enum(computer, phone, tablet, server, iot, other)
+    os: string?
+    identifiers: object?  # {mac, serial, etc.}
+    owner: ref(Person)?
+
+Credential:
+  required: [service, secret_ref]
+  forbidden_properties: [password, secret, token, key, api_key]
+  properties:
+    service: string
+    secret_ref: string  # Reference to secret store (e.g., "keychain:github-token")
+    expires: datetime?
+    scope: string[]?
+```
+
+### Meta
+
+```yaml
+Action:
+  required: [type, target, timestamp]
+  properties:
+    type: string  # create, update, delete, send, etc.
+    target: ref(Entity)
+    timestamp: datetime
+    actor: ref(Person|Agent)?
+    outcome: enum(success, failure, pending)?
+    details: object?
+
+Policy:
+  required: [scope, rule]
+  properties:
+    scope: string  # What this policy applies to
+    rule: string   # The constraint in natural language or code
+    enforcement: enum(block, warn, log)
+    enabled: boolean
+```
+
+## Relation Types
+
+### Ownership & Assignment
+
+```yaml
+owns:
+  from_types: [Person, Organization]
+  to_types: [Account, Device, Document, Project]
+  cardinality: one_to_many
+
+has_owner:
+  from_types: [Project, Task, Document]
+  to_types: [Person]
+  cardinality: many_to_one
+
+assigned_to:
+  from_types: [Task]
+  to_types: [Person]
+  cardinality: many_to_one
+```
+
+### Hierarchy & Containment
+
+```yaml
+has_task:
+  from_types: [Project]
+  to_types: [Task]
+  cardinality: one_to_many
+
+has_goal:
+  from_types: [Project]
+  to_types: [Goal]
+  cardinality: one_to_many
+
+member_of:
+  from_types: [Person]
+  to_types: [Organization]
+  cardinality: many_to_many
+
+part_of:
+  from_types: [Task, Document, Event]
+  to_types: [Project]
+  cardinality: many_to_one
+```
+
+### Dependencies
+
+```yaml
+blocks:
+  from_types: [Task]
+  to_types: [Task]
+  acyclic: true  # Prevents circular dependencies
+  cardinality: many_to_many
+
+depends_on:
+  from_types: [Task, Project]
+  to_types: [Task, Project, Event]
+  acyclic: true
+  cardinality: many_to_many
+
+requires:
+  from_types: [Action]
+  to_types: [Credential, Policy]
+  cardinality: many_to_many
+```
+
+### References
+
+```yaml
+mentions:
+  from_types: [Document, Message, Note]
+  to_types: [Person, Project, Task, Event]
+  cardinality: many_to_many
+
+references:
+  from_types: [Document, Note]
+  to_types: [Document, Note]
+  cardinality: many_to_many
+
+follows_up:
+  from_types: [Task, Event]
+  to_types: [Event, Message]
+  cardinality: many_to_one
+```
+
+### Events
+
+```yaml
+attendee_of:
+  from_types: [Person]
+  to_types: [Event]
+  cardinality: many_to_many
+  properties:
+    status: enum(accepted, declined, tentative, pending)
+
+located_at:
+  from_types: [Event, Person, Device]
+  to_types: [Location]
+  cardinality: many_to_one
+```
+
+## Global Constraints
+
+```yaml
+constraints:
+  # Credentials must never store secrets directly
+  - type: Credential
+    rule: "forbidden_properties: [password, secret, token]"
+    message: "Credentials must use secret_ref to reference external secret storage"
+
+  # Tasks must have valid status transitions
+  - type: Task
+    rule: "status transitions: open -> in_progress -> (done|blocked) -> done"
+    enforcement: warn
+
+  # Events must have end >= start
+  - type: Event
+    rule: "if end exists: end >= start"
+    message: "Event end time must be after start time"
+
+  # No orphan tasks (should belong to a project or have explicit owner)
+  - type: Task
+    rule: "has_relation(part_of, Project) OR has_property(owner)"
+    enforcement: warn
+    message: "Task should belong to a project or have an explicit owner"
+
+  # Circular dependency prevention
+  - relation: blocks
+    rule: "acyclic"
+    message: "Circular task dependencies are not allowed"
+```

--
Gitblit v1.9.1