Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
This skill should be used when users need to create, validate, or modify Moqui framework services, entities, and queries. It provides comprehensive guidance for writing correct Moqui XML definitions, following framework patterns and conventions. --- name: moqui-service-writer description: This skill should be used when users need to create, validate, or modify Moqui framework services, entities, and queries. It provides comprehensive guidance for writing correct Moqui XML definitions, following framework patterns and conventions. license: Complete terms in LICENSE.txt --- Moqui Service Writer Overview This skill enables writing correct Moqui framework servic Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Freshness
Last checked 2/22/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
moqui-service-writer is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
This skill should be used when users need to create, validate, or modify Moqui framework services, entities, and queries. It provides comprehensive guidance for writing correct Moqui XML definitions, following framework patterns and conventions. --- name: moqui-service-writer description: This skill should be used when users need to create, validate, or modify Moqui framework services, entities, and queries. It provides comprehensive guidance for writing correct Moqui XML definitions, following framework patterns and conventions. license: Complete terms in LICENSE.txt --- Moqui Service Writer Overview This skill enables writing correct Moqui framework servic
Public facts
6
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Feb 22, 2026
Vendor
Schue
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/schue/moqui-skill.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Schue
Protocol compatibility
OpenClaw
Auth modes
api_key
Machine-readable schemas
OpenAPI or schema references published
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
bash
python3 scripts/generate_service.py --interactive
bash
python3 scripts/generate_service.py --verb create --noun Product --type create
bash
python3 scripts/validate_service.py path/to/your/service.xml
xml
<service verb="create" noun="Product" type="entity-auto">
<in-parameters>
<auto-parameters entity-name="com.example.Product" include="nonpk"/>
</in-parameters>
<out-parameters>
<parameter name="productId"/>
</out-parameters>
</service>xml
<service verb="find" noun="Product" allow-remote="true">
<in-parameters>
<parameter name="productTypeEnumId"/>
<parameter name="statusId"/>
<parameter name="orderByField" default-value="productName"/>
</in-parameters>
<out-parameters>
<parameter name="productList" type="List"/>
<parameter name="totalCount" type="Integer"/>
</out-parameters>
<actions>
<entity-find entity-name="com.example.Product" list="productList" count="totalCount">
<econdition field-name="productTypeEnumId" ignore-if-empty="true"/>
<econdition field-name="statusId" ignore-if-empty="true"/>
<order-by field-name="${orderByField}"/>
</entity-find>
</actions>
</service>xml
<!-- Standard service - use framework defaults -->
<service verb="process" noun="Order" authenticate="true">
<in-parameters>
<parameter name="orderId" type="id" required="true"/>
</in-parameters>
<actions>
<!-- Validate order exists -->
<entity-find-one entity-name="com.example.Order" value-field="order"/>
<if condition="order == null">
<return error="true" message="Order not found with ID: ${orderId}"/>
</if>
<!-- Check permissions -->
<set field="hasPermission" from="ec.user.hasPermission('ORDER', 'PROCESS')"/>
<if condition="!hasPermission">
<return error="true" message="Permission denied"/>
</if>
<!-- Business logic -->
<service-call name="update#OrderStatus" in-map="[orderId: orderId, statusId: 'OsProcessing']"/>
<service-call name="send#OrderNotification" in-map="[orderId: orderId]"/>
<message public="true" type="success">Order processed successfully</message>
</actions>
</service>Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
This skill should be used when users need to create, validate, or modify Moqui framework services, entities, and queries. It provides comprehensive guidance for writing correct Moqui XML definitions, following framework patterns and conventions. --- name: moqui-service-writer description: This skill should be used when users need to create, validate, or modify Moqui framework services, entities, and queries. It provides comprehensive guidance for writing correct Moqui XML definitions, following framework patterns and conventions. license: Complete terms in LICENSE.txt --- Moqui Service Writer Overview This skill enables writing correct Moqui framework servic
This skill enables writing correct Moqui framework services, entities, and queries by providing comprehensive patterns, validation tools, and reference documentation. It helps developers follow Moqui conventions and avoid common pitfalls when working with the enterprise framework.
scripts/generate_service.py --interactiveassets/entity_template.xml as a starting pointscripts/validate_service.py and scripts/validate_entity.pyscripts/format_moqui_xml.pyreferences/ for best practicesassets/ for new componentsDetermine service purpose and select appropriate verb:
Use service generator:
python3 scripts/generate_service.py --interactive
Or generate specific types:
python3 scripts/generate_service.py --verb create --noun Product --type create
Edit the generated service following patterns in references/service_patterns.md:
python3 scripts/validate_service.py path/to/your/service.xml
Use entity-auto services for standard operations:
<service verb="create" noun="Product" type="entity-auto">
<in-parameters>
<auto-parameters entity-name="com.example.Product" include="nonpk"/>
</in-parameters>
<out-parameters>
<parameter name="productId"/>
</out-parameters>
</service>
Implement find services with filtering:
<service verb="find" noun="Product" allow-remote="true">
<in-parameters>
<parameter name="productTypeEnumId"/>
<parameter name="statusId"/>
<parameter name="orderByField" default-value="productName"/>
</in-parameters>
<out-parameters>
<parameter name="productList" type="List"/>
<parameter name="totalCount" type="Integer"/>
</out-parameters>
<actions>
<entity-find entity-name="com.example.Product" list="productList" count="totalCount">
<econdition field-name="productTypeEnumId" ignore-if-empty="true"/>
<econdition field-name="statusId" ignore-if-empty="true"/>
<order-by field-name="${orderByField}"/>
</entity-find>
</actions>
</service>
Implement complex operations with proper error handling:
Follow Moqui Framework Transaction Patterns:
transaction="force-new" for financial/bulk operationstransaction-timeout for operations > 5 minutestransaction="cache" (causes locking issues in framework)<!-- Standard service - use framework defaults -->
<service verb="process" noun="Order" authenticate="true">
<in-parameters>
<parameter name="orderId" type="id" required="true"/>
</in-parameters>
<actions>
<!-- Validate order exists -->
<entity-find-one entity-name="com.example.Order" value-field="order"/>
<if condition="order == null">
<return error="true" message="Order not found with ID: ${orderId}"/>
</if>
<!-- Check permissions -->
<set field="hasPermission" from="ec.user.hasPermission('ORDER', 'PROCESS')"/>
<if condition="!hasPermission">
<return error="true" message="Permission denied"/>
</if>
<!-- Business logic -->
<service-call name="update#OrderStatus" in-map="[orderId: orderId, statusId: 'OsProcessing']"/>
<service-call name="send#OrderNotification" in-map="[orderId: orderId]"/>
<message public="true" type="success">Order processed successfully</message>
</actions>
</service>
<!-- Critical financial operation - explicit transaction -->
<service verb="close" noun="FinancialPeriod" authenticate="true"
transaction="force-new" transaction-timeout="600">
<in-parameters>
<parameter name="financialPeriodId" type="id" required="true"/>
</in-parameters>
<actions>
<!-- Critical financial closing logic -->
<script>ec.transaction.commitBeginOnly();</script>
<!-- ... closing operations ... -->
</actions>
</service>
Default Behavior (98.5% of framework services):
<!-- Most services - no transaction attribute needed -->
<service verb="create" noun="Example" authenticate="true">
<!-- Framework handles transactions automatically -->
</service>
Critical Operations (1.5% of framework services):
<!-- Financial/bulk operations requiring isolation -->
<service verb="close" noun="FinancialPeriod" authenticate="true"
transaction="force-new" transaction-timeout="600">
<!-- Long-running critical operation -->
</service>
| Scenario | Transaction Attribute | Timeout | When to Use |
|-----------|-------------------|----------|--------------|
| Standard CRUD | (none) | (none) | 98.5% of services |
| Financial Operations | force-new | 600-3600s | Period closing, payments |
| Bulk Data Operations | force-new | 600-1800s | Import/export, cleanup |
| Long-running Tasks | (none) | 600+ | Add timeout only if >5min |
| Record Locking Issues | ignore | (none) | Bulk operations only |
❌ Avoid transaction="cache"
❌ Avoid transaction="use-or-begin"
❌ Avoid transaction-timeout="60"
transaction="force-new" only for critical financial/bulk operationstransaction-timeout only for operations expected to run >5 minutesConsider:
{entityName}Id)Start with assets/entity_template.xml and customize:
python3 scripts/validate_entity.py path/to/your/entity.xml
Use references/field_types.md to choose appropriate types:
<!-- Primary Key -->
<field name="productId" type="id" is-pk="true"/>
<!-- Text Fields -->
<field name="productName" type="text-medium" enable-localization="true"/>
<field name="description" type="text-long" enable-localization="true"/>
<!-- Numeric Fields -->
<field name="price" type="currency-amount"/>
<field name="quantity" type="number-integer"/>
<!-- Date Fields -->
<field name="createdDate" type="date-time"/>
<field name="fromDate" type="date-time"/>
<field name="thruDate" type="date-time"/>
<!-- Status Fields -->
<field name="statusId" type="id" enable-audit-log="true"/>
<!-- Audit Fields -->
<field name="createdByUserAccountId" type="id" enable-audit-log="true"/>
<field name="lastUpdatedStamp" type="date-time"/>
<!-- In parent entity -->
<relationship type="many" related="com.example.OrderItem" short-alias="items">
<key-map field-name="orderId"/></relationship>
<!-- In child entity -->
<relationship type="one" related="com.example.OrderHeader" short-alias="order">
<key-map field-name="orderId"/></relationship>
<relationship type="one" related="moqui.basic.StatusItem" short-alias="status">
<key-map field-name="statusId"/></relationship>
<relationship type="one-nofk" title="Parent" related="com.example.Category" short-alias="parent">
<key-map field-name="parentCategoryId" related="categoryId"/></relationship>
<!-- Find single record -->
<entity-find-one entity-name="com.example.Product" value-field="product"/>
<!-- Find multiple records -->
<entity-find entity-name="com.example.Product" list="productList">
<econdition field-name="statusId" value="PsActive"/>
<order-by field-name="productName"/>
</entity-find>
<entity-find entity-name="com.example.Product" list="productList">
<econdition field-name="productTypeEnumId" from="productTypeEnumId" ignore-if-empty="true"/>
<econdition field-name="statusId" from="statusId" ignore-if-empty="true"/>
<econdition field-name="productName" operator="like" value="${searchText}%"/>
<order-by field-name="productName"/>
</entity-find>
<entity-find entity-name="com.example.Order" list="orderList">
<date-filter valid-date="orderDate"/>
<order-by field-name="orderDate" descending="true"/>
</entity-find>
<entity-find entity-name="com.example.Product" list="productList" count="totalCount">
<econdition field-name="statusId" value="PsActive"/>
<order-by field-name="productName"/>
</entity-find>
<!-- Manual pagination -->
<script>
def startIdx = pageIndex * pageSize
def endIdx = startIdx + pageSize
productList = productList.subList(startIdx, Math.min(endIdx, productList.size()))
</script>
<entity-find entity-name="com.example.Product" list="productList">
<econdition field-name="status.description" operator="like" value="${statusFilter}%"/>
<relationship-join relationship="status"/>
<order-by field-name="productName"/>
</entity-find>
<entity-find entity-name="com.example.ProductAndStatus" list="productList">
<econdition field-name="statusId" value="PsActive"/>
<econdition field-name="statusDescription" operator="like" value="${statusFilter}%"/>
<order-by field-name="productName"/>
</entity-find>
Choose appropriate authentication based on sensitivity:
anonymous-all - Public servicesanonymous-view - Read-only public datatrue - User must be logged inrequire-all-roles for restricted access<set field="hasPermission" from="ec.user.hasPermission('PRODUCT', 'CREATE')"/>
<if condition="!hasPermission">
<return error="true" message="Permission denied"/>
</if>
<if condition="!ec.user.isUserInRole('ADMIN')">
<script>
productList = productList.findAll { it.createdByUserAccountId == ec.user.userId }
</script>
</if>
# Validate single service file
python3 scripts/validate_service.py service/ExampleServices.xml
# Validate entire directory
python3 scripts/validate_service.py --directory service/
# Validate single entity file
python3 scripts/validate_entity.py entity/ExampleEntities.xml
# Validate entire directory
python3 scripts/validate_entity.py --directory entity/
# Format single file with backup
python3 scripts/format_moqui_xml.py service/ExampleServices.xml
# Format directory without backup
python3 scripts/format_moqui_xml.py --directory entity/ --no-backup
Executable tools for validation and generation:
Comprehensive documentation for reference while working:
Template files for starting new components:
Before using field names in code, verify against entity definitions:
# Find entity definition
find . -name "*.xml" -path "*/entity/*" | xargs grep -l "entity-name=\"YourEntity\""
# Check available fields
grep -A 5 -B 5 "<field name="fieldName"*/entity/YourEntity.xml
| Intended Field | Correct Field | Entity | Context | |---------------|---------------|---------|---------| | trackingUrl | masterTrackingUrl | ShipmentRouteSegment | Overall shipment tracking | | trackingUrl | trackingUrl | ShipmentPackageRouteSeg | Package-level tracking | | trackingIdNumber | masterTrackingCode | ShipmentRouteSegment | Overall tracking number | | trackingIdNumber | trackingCode | ShipmentPackageRouteSeg | Package tracking number | | externalId | otherPartyOrderId | OrderPart | External system reference |
Services can have misleading names - always verify actual behavior:
| Service | What It Actually Does | When to Use | |----------|---------------------|-------------| | ship#OrderPart | Creates NEW shipment + packs items + marks shipped | No existing shipment | | create#OrderPartShipment | Creates shipment record only | Need custom packing logic | | ship#Shipment | Marks existing shipment as shipped | Shipment exists, needs status change | | update#OrderStatus | Changes order status only | Status transition needed |
<!-- WRONG: Assumes ship#OrderPart updates existing shipment -->
<service-call name="ship#OrderPart" in-map="[orderId: orderId]"/>
<!-- CORRECT: Different approaches for existing vs new -->
<if condition="existingShipment">
<service-call name="ship#Shipment" in-map="[shipmentId: shipmentId]"/>
<else>
<service-call name="ship#OrderPart" in-map="[orderId: orderId]"/>
</if>
Groovy closures have different variable scope rules than traditional blocks:
// BROKEN: logger not accessible in closure
existingShipments.each { shipment ->
logger.info("Shipment: ${shipment.shipmentId}") // NullPointerException!
}
// CORRECT: Use traditional for loop for outer variable access
for (EntityValue shipment in existingShipments) {
logger.info("Shipment: ${shipment.shipmentId}") // Works!
}
// CORRECT: Explicit variable passing
existingShipments.each { shipment ->
def log = logger // Explicit reference
log.info("Shipment: ${shipment.shipmentId}")
}
# 1. Fix syntax errors
groovy -cp . service/YourService.groovy
# 2. Test basic functionality
# Run service with minimal parameters
# 3. Add complex logic incrementally
# Test each addition separately
# 4. Full integration testing
# Test complete workflow
# Quick brace check
open_count=$(grep -o '{' service/YourService.groovy | wc -l)
close_count=$(grep -o '}' service/YourService.groovy | wc -l)
echo "Open: $open_count, Close: $close_count"
# Should be equal for valid syntax
Always ask these questions first:
Is there a Moqui service that does this?
Am I duplicating existing functionality?
Is this getting too complex?
// COMPLEX: Manual shipment creation (48 lines)
if (existingShipment) {
// Manual tracking updates
// Manual route segment creation
// Manual shipment status changes
} else {
// Manual shipment creation
// Manual package creation
// Manual status updates
}
// SIMPLE: Use Moqui services (15 lines)
if (existingShipment) {
ec.service.sync().name("ship#Shipment")(shipmentId: shipmentId)
} else {
ec.service.sync().name("ship#OrderPart")(orderId: orderId)
}
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
api_key
Streaming
No
Data region
global
Protocol support
Requires: openclew, lang:typescript
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/schue-moqui-skill/snapshot"
curl -s "https://xpersona.co/api/v1/agents/schue-moqui-skill/contract"
curl -s "https://xpersona.co/api/v1/agents/schue-moqui-skill/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
70
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
Traction
No public download signal
Freshness
Updated 2d ago
Rank
70
AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs
Traction
No public download signal
Freshness
Updated 5d ago
Rank
70
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
Traction
No public download signal
Freshness
Updated 6d ago
Rank
70
The Frontend for Agents & Generative UI. React + Angular
Traction
No public download signal
Freshness
Updated 23d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"api_key"
],
"requires": [
"openclew",
"lang:typescript"
],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": "https://github.com/schue/moqui-skill#input",
"outputSchemaRef": "https://github.com/schue/moqui-skill#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:44:25.593Z",
"sourceUpdatedAt": "2026-02-24T19:44:25.593Z",
"freshnessSeconds": 4423871
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/schue-moqui-skill/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/schue-moqui-skill/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/schue-moqui-skill/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/schue-moqui-skill/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/schue-moqui-skill/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/schue-moqui-skill/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-04-17T00:35:36.682Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "have",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:have|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/schue-moqui-skill/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/schue-moqui-skill/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-24T19:44:25.593Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "api_key",
"href": "https://xpersona.co/api/v1/agents/schue-moqui-skill/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/schue-moqui-skill/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:25.593Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/schue/moqui-skill#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/schue-moqui-skill/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:44:25.593Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Schue",
"href": "https://github.com/schue/moqui-skill",
"sourceUrl": "https://github.com/schue/moqui-skill",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/schue-moqui-skill/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/schue-moqui-skill/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to moqui-service-writer and adjacent AI workflows.