@fractary/core 0.7.24 → 0.7.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/docs/type-registry.d.ts.map +1 -1
- package/dist/docs/type-registry.js +4 -5
- package/dist/docs/type-registry.js.map +1 -1
- package/dist/logs/type-registry.d.ts.map +1 -1
- package/dist/logs/type-registry.js +4 -5
- package/dist/logs/type-registry.js.map +1 -1
- package/dist/work/providers/github.d.ts.map +1 -1
- package/dist/work/providers/github.js +10 -2
- package/dist/work/providers/github.js.map +1 -1
- package/package.json +4 -2
- package/templates/docs/adr/standards.md +29 -0
- package/templates/docs/adr/template.md +48 -0
- package/templates/docs/adr/type.yaml +74 -0
- package/templates/docs/api/standards.md +16 -0
- package/templates/docs/api/template.md +62 -0
- package/templates/docs/api/type.yaml +63 -0
- package/templates/docs/architecture/standards.md +15 -0
- package/templates/docs/architecture/template.md +58 -0
- package/templates/docs/architecture/type.yaml +63 -0
- package/templates/docs/audit/standards.md +15 -0
- package/templates/docs/audit/template.md +52 -0
- package/templates/docs/audit/type.yaml +61 -0
- package/templates/docs/changelog/standards.md +15 -0
- package/templates/docs/changelog/template.md +53 -0
- package/templates/docs/changelog/type.yaml +45 -0
- package/templates/docs/dataset/standards.md +15 -0
- package/templates/docs/dataset/template.md +65 -0
- package/templates/docs/dataset/type.yaml +63 -0
- package/templates/docs/etl/standards.md +15 -0
- package/templates/docs/etl/template.md +77 -0
- package/templates/docs/etl/type.yaml +66 -0
- package/templates/docs/guides/standards.md +16 -0
- package/templates/docs/guides/template.md +58 -0
- package/templates/docs/guides/type.yaml +61 -0
- package/templates/docs/infrastructure/standards.md +15 -0
- package/templates/docs/infrastructure/template.md +90 -0
- package/templates/docs/infrastructure/type.yaml +66 -0
- package/templates/docs/manifest.yaml +114 -0
- package/templates/docs/spec-api/standards.md +53 -0
- package/templates/docs/spec-api/template.md +96 -0
- package/templates/docs/spec-api/type.yaml +102 -0
- package/templates/docs/spec-basic/standards.md +24 -0
- package/templates/docs/spec-basic/template.md +51 -0
- package/templates/docs/spec-basic/type.yaml +92 -0
- package/templates/docs/spec-bug/standards.md +46 -0
- package/templates/docs/spec-bug/template.md +66 -0
- package/templates/docs/spec-bug/type.yaml +96 -0
- package/templates/docs/spec-feature/standards.md +53 -0
- package/templates/docs/spec-feature/template.md +105 -0
- package/templates/docs/spec-feature/type.yaml +106 -0
- package/templates/docs/spec-infrastructure/standards.md +58 -0
- package/templates/docs/spec-infrastructure/template.md +71 -0
- package/templates/docs/spec-infrastructure/type.yaml +102 -0
- package/templates/docs/standards/standards.md +15 -0
- package/templates/docs/standards/template.md +54 -0
- package/templates/docs/standards/type.yaml +61 -0
- package/templates/docs/testing/standards.md +15 -0
- package/templates/docs/testing/template.md +87 -0
- package/templates/docs/testing/type.yaml +65 -0
- package/templates/logs/audit/standards.md +33 -0
- package/templates/logs/audit/template.md +65 -0
- package/templates/logs/audit/type.yaml +85 -0
- package/templates/logs/build/standards.md +32 -0
- package/templates/logs/build/template.md +78 -0
- package/templates/logs/build/type.yaml +71 -0
- package/templates/logs/changelog/standards.md +34 -0
- package/templates/logs/changelog/template.md +71 -0
- package/templates/logs/changelog/type.yaml +70 -0
- package/templates/logs/debug/standards.md +33 -0
- package/templates/logs/debug/template.md +63 -0
- package/templates/logs/debug/type.yaml +77 -0
- package/templates/logs/deployment/standards.md +34 -0
- package/templates/logs/deployment/template.md +64 -0
- package/templates/logs/deployment/type.yaml +76 -0
- package/templates/logs/manifest.yaml +70 -0
- package/templates/logs/operational/standards.md +34 -0
- package/templates/logs/operational/template.md +71 -0
- package/templates/logs/operational/type.yaml +87 -0
- package/templates/logs/session/standards.md +34 -0
- package/templates/logs/session/template.md +81 -0
- package/templates/logs/session/type.yaml +69 -0
- package/templates/logs/test/standards.md +34 -0
- package/templates/logs/test/template.md +83 -0
- package/templates/logs/test/type.yaml +75 -0
- package/templates/logs/workflow/standards.md +35 -0
- package/templates/logs/workflow/template.md +95 -0
- package/templates/logs/workflow/type.yaml +91 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Core Log Types Manifest
|
|
2
|
+
#
|
|
3
|
+
# This manifest lists all core log types available in Fractary.
|
|
4
|
+
# The format matches .fractary/config.yaml's logs.custom_types section,
|
|
5
|
+
# so users can extend with their own types using the same structure.
|
|
6
|
+
#
|
|
7
|
+
# Each type is a directory containing:
|
|
8
|
+
# - type.yaml : Type definition (schema, frontmatter rules, file naming)
|
|
9
|
+
# - template.md : Mustache template for log generation
|
|
10
|
+
# - standards.md : Standards and conventions for this type
|
|
11
|
+
|
|
12
|
+
version: "1.0"
|
|
13
|
+
|
|
14
|
+
# Base URL for raw file access (used by remote tools/SDKs)
|
|
15
|
+
base_url: https://raw.githubusercontent.com/fractary/core/main/templates/logs
|
|
16
|
+
|
|
17
|
+
log_types:
|
|
18
|
+
- id: audit
|
|
19
|
+
display_name: Audit Log
|
|
20
|
+
description: Security events, access logs, compliance tracking, change audits
|
|
21
|
+
path: ./audit
|
|
22
|
+
url: ${base_url}/audit/type.yaml
|
|
23
|
+
|
|
24
|
+
- id: build
|
|
25
|
+
display_name: Build Log
|
|
26
|
+
description: CI/CD builds, compilation output, npm/cargo/make builds, build failures
|
|
27
|
+
path: ./build
|
|
28
|
+
url: ${base_url}/build/type.yaml
|
|
29
|
+
|
|
30
|
+
- id: changelog
|
|
31
|
+
display_name: Changelog Log
|
|
32
|
+
description: Version changes, feature updates, release notes, configuration changes
|
|
33
|
+
path: ./changelog
|
|
34
|
+
url: ${base_url}/changelog/type.yaml
|
|
35
|
+
|
|
36
|
+
- id: debug
|
|
37
|
+
display_name: Debug Log
|
|
38
|
+
description: Troubleshooting, bug investigation, error analysis, debugging notes
|
|
39
|
+
path: ./debug
|
|
40
|
+
url: ${base_url}/debug/type.yaml
|
|
41
|
+
|
|
42
|
+
- id: deployment
|
|
43
|
+
display_name: Deployment Log
|
|
44
|
+
description: Production deploys, staging releases, rollbacks, environment updates
|
|
45
|
+
path: ./deployment
|
|
46
|
+
url: ${base_url}/deployment/type.yaml
|
|
47
|
+
|
|
48
|
+
- id: operational
|
|
49
|
+
display_name: Operational Log
|
|
50
|
+
description: System events, service health, monitoring alerts, incident logs
|
|
51
|
+
path: ./operational
|
|
52
|
+
url: ${base_url}/operational/type.yaml
|
|
53
|
+
|
|
54
|
+
- id: session
|
|
55
|
+
display_name: Session Log
|
|
56
|
+
description: Claude Code sessions, conversation tracking, token usage, interaction history
|
|
57
|
+
path: ./session
|
|
58
|
+
url: ${base_url}/session/type.yaml
|
|
59
|
+
|
|
60
|
+
- id: test
|
|
61
|
+
display_name: Test Log
|
|
62
|
+
description: Test runs, QA results, test failures, coverage reports, CI test output
|
|
63
|
+
path: ./test
|
|
64
|
+
url: ${base_url}/test/type.yaml
|
|
65
|
+
|
|
66
|
+
- id: workflow
|
|
67
|
+
display_name: Workflow Log
|
|
68
|
+
description: FABER phases, ETL pipelines, data workflows, automation steps
|
|
69
|
+
path: ./workflow
|
|
70
|
+
url: ${base_url}/workflow/type.yaml
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Operational Log Standards
|
|
2
|
+
|
|
3
|
+
## Required Conventions
|
|
4
|
+
|
|
5
|
+
### 1. Event Identification
|
|
6
|
+
- ALWAYS include unique event_id
|
|
7
|
+
- ALWAYS specify affected service
|
|
8
|
+
- ALWAYS include detection timestamp
|
|
9
|
+
|
|
10
|
+
### 2. Classification
|
|
11
|
+
- ALWAYS set appropriate severity (info, warning, error, critical)
|
|
12
|
+
- ALWAYS categorize event (health, alert, maintenance, incident)
|
|
13
|
+
- ALWAYS specify environment (dev, staging, prod)
|
|
14
|
+
|
|
15
|
+
### 3. Impact Assessment
|
|
16
|
+
- ALWAYS document user and system impact
|
|
17
|
+
- ALWAYS note scope of impact (partial, full outage)
|
|
18
|
+
- ALWAYS estimate number of affected users if applicable
|
|
19
|
+
|
|
20
|
+
### 4. Response Documentation
|
|
21
|
+
- ALWAYS document actions taken
|
|
22
|
+
- ALWAYS include timestamps for response actions
|
|
23
|
+
- ALWAYS note who responded
|
|
24
|
+
|
|
25
|
+
## Best Practices
|
|
26
|
+
|
|
27
|
+
- Use unique event_id format: `OP-{timestamp}-{random}`
|
|
28
|
+
- Link to monitoring dashboards and alerts
|
|
29
|
+
- Include relevant metrics and graphs
|
|
30
|
+
- Track MTTR (Mean Time to Recovery) for incidents
|
|
31
|
+
- Document post-incident action items
|
|
32
|
+
- Escalate critical events immediately
|
|
33
|
+
- Create postmortem documents for major incidents
|
|
34
|
+
- Keep production incident logs for compliance
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
log_type: operational
|
|
3
|
+
title: {{title}}
|
|
4
|
+
event_id: {{event_id}}
|
|
5
|
+
date: {{date}}
|
|
6
|
+
status: {{status}}
|
|
7
|
+
service: {{service}}
|
|
8
|
+
{{#severity}}
|
|
9
|
+
severity: {{severity}}
|
|
10
|
+
{{/severity}}
|
|
11
|
+
{{#category}}
|
|
12
|
+
category: {{category}}
|
|
13
|
+
{{/category}}
|
|
14
|
+
{{#environment}}
|
|
15
|
+
environment: {{environment}}
|
|
16
|
+
{{/environment}}
|
|
17
|
+
{{#work_id}}
|
|
18
|
+
work_id: {{work_id}}
|
|
19
|
+
{{/work_id}}
|
|
20
|
+
{{#tags}}
|
|
21
|
+
tags:
|
|
22
|
+
{{#tags}}
|
|
23
|
+
- {{.}}
|
|
24
|
+
{{/tags}}
|
|
25
|
+
{{/tags}}
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Operational Event: {{title}}
|
|
29
|
+
|
|
30
|
+
## Event Details
|
|
31
|
+
|
|
32
|
+
- **Service**: {{service}}
|
|
33
|
+
{{#severity}}
|
|
34
|
+
- **Severity**: {{severity}}
|
|
35
|
+
{{/severity}}
|
|
36
|
+
{{#category}}
|
|
37
|
+
- **Category**: {{category}}
|
|
38
|
+
{{/category}}
|
|
39
|
+
- **Detected**: {{date}}
|
|
40
|
+
|
|
41
|
+
## Description
|
|
42
|
+
|
|
43
|
+
{{description}}
|
|
44
|
+
|
|
45
|
+
{{#impact}}
|
|
46
|
+
## Impact
|
|
47
|
+
|
|
48
|
+
{{impact}}
|
|
49
|
+
{{/impact}}
|
|
50
|
+
|
|
51
|
+
{{#response_actions}}
|
|
52
|
+
## Response Actions
|
|
53
|
+
|
|
54
|
+
{{#response_actions}}
|
|
55
|
+
1. {{.}}
|
|
56
|
+
{{/response_actions}}
|
|
57
|
+
{{/response_actions}}
|
|
58
|
+
|
|
59
|
+
{{#resolution}}
|
|
60
|
+
## Resolution
|
|
61
|
+
|
|
62
|
+
{{resolution}}
|
|
63
|
+
{{/resolution}}
|
|
64
|
+
|
|
65
|
+
{{#follow_up}}
|
|
66
|
+
## Follow-up
|
|
67
|
+
|
|
68
|
+
{{#follow_up}}
|
|
69
|
+
- {{.}}
|
|
70
|
+
{{/follow_up}}
|
|
71
|
+
{{/follow_up}}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Operational Log Type Definition
|
|
2
|
+
#
|
|
3
|
+
# This file defines the schema, frontmatter rules, and configuration
|
|
4
|
+
# for operational and infrastructure log entries.
|
|
5
|
+
|
|
6
|
+
id: operational
|
|
7
|
+
display_name: Operational Log
|
|
8
|
+
description: System events, service health, monitoring alerts, incident logs
|
|
9
|
+
|
|
10
|
+
# Output configuration
|
|
11
|
+
output_path: .fractary/logs/operational
|
|
12
|
+
|
|
13
|
+
# File naming rules
|
|
14
|
+
file_naming:
|
|
15
|
+
pattern: "{date}-{event_id}.md"
|
|
16
|
+
date_format: "YYYYMMDD-HHmmss"
|
|
17
|
+
slug_source: event_id
|
|
18
|
+
slug_max_length: 36
|
|
19
|
+
|
|
20
|
+
# Frontmatter schema
|
|
21
|
+
frontmatter:
|
|
22
|
+
required_fields:
|
|
23
|
+
- log_type
|
|
24
|
+
- title
|
|
25
|
+
- event_id
|
|
26
|
+
- date
|
|
27
|
+
- status
|
|
28
|
+
- service
|
|
29
|
+
optional_fields:
|
|
30
|
+
- severity
|
|
31
|
+
- category
|
|
32
|
+
- environment
|
|
33
|
+
- work_id
|
|
34
|
+
- tags
|
|
35
|
+
defaults:
|
|
36
|
+
log_type: operational
|
|
37
|
+
status: active
|
|
38
|
+
|
|
39
|
+
# Document structure
|
|
40
|
+
structure:
|
|
41
|
+
required_sections:
|
|
42
|
+
- Event Details
|
|
43
|
+
- Description
|
|
44
|
+
optional_sections:
|
|
45
|
+
- Impact
|
|
46
|
+
- Response Actions
|
|
47
|
+
- Resolution
|
|
48
|
+
- Follow-up
|
|
49
|
+
section_order:
|
|
50
|
+
- Event Details
|
|
51
|
+
- Description
|
|
52
|
+
- Impact
|
|
53
|
+
- Response Actions
|
|
54
|
+
- Resolution
|
|
55
|
+
- Follow-up
|
|
56
|
+
|
|
57
|
+
# Status workflow
|
|
58
|
+
status:
|
|
59
|
+
allowed_values:
|
|
60
|
+
- active
|
|
61
|
+
- investigating
|
|
62
|
+
- resolved
|
|
63
|
+
- archived
|
|
64
|
+
default: active
|
|
65
|
+
|
|
66
|
+
# Severity levels
|
|
67
|
+
severity:
|
|
68
|
+
allowed_values:
|
|
69
|
+
- info
|
|
70
|
+
- warning
|
|
71
|
+
- error
|
|
72
|
+
- critical
|
|
73
|
+
default: info
|
|
74
|
+
|
|
75
|
+
# Category classification
|
|
76
|
+
category:
|
|
77
|
+
allowed_values:
|
|
78
|
+
- health
|
|
79
|
+
- alert
|
|
80
|
+
- maintenance
|
|
81
|
+
- incident
|
|
82
|
+
default: health
|
|
83
|
+
|
|
84
|
+
# Retention policy
|
|
85
|
+
retention:
|
|
86
|
+
default_local_days: 30
|
|
87
|
+
default_cloud_days: 90
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Session Log Standards
|
|
2
|
+
|
|
3
|
+
## Required Conventions
|
|
4
|
+
|
|
5
|
+
### 1. Identification
|
|
6
|
+
- ALWAYS generate UUID format session_id
|
|
7
|
+
- ALWAYS include start timestamp
|
|
8
|
+
- ALWAYS link to conversation_id when available
|
|
9
|
+
|
|
10
|
+
### 2. Metadata Tracking
|
|
11
|
+
- ALWAYS record model name
|
|
12
|
+
- ALWAYS track token count
|
|
13
|
+
- ALWAYS calculate duration on session stop
|
|
14
|
+
|
|
15
|
+
### 3. Status Management
|
|
16
|
+
- ALWAYS start sessions as active
|
|
17
|
+
- ALWAYS mark stopped when capture ends
|
|
18
|
+
- ALWAYS mark error if session fails
|
|
19
|
+
|
|
20
|
+
### 4. Content Capture
|
|
21
|
+
- ALWAYS capture conversation exchanges
|
|
22
|
+
- ALWAYS include tool calls and results
|
|
23
|
+
- ALWAYS summarize session outcomes
|
|
24
|
+
|
|
25
|
+
## Best Practices
|
|
26
|
+
|
|
27
|
+
- Use UUID format: `{uuid}` for session_id
|
|
28
|
+
- Redact sensitive information (API keys, passwords)
|
|
29
|
+
- Include repository and branch context
|
|
30
|
+
- Link sessions to work items when applicable
|
|
31
|
+
- Summarize key decisions made during session
|
|
32
|
+
- Note follow-up actions identified
|
|
33
|
+
- Archive sessions after 7 days locally
|
|
34
|
+
- Keep cloud copies for historical reference
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
log_type: session
|
|
3
|
+
title: {{title}}
|
|
4
|
+
session_id: {{session_id}}
|
|
5
|
+
date: {{date}}
|
|
6
|
+
status: {{status}}
|
|
7
|
+
{{#conversation_id}}
|
|
8
|
+
conversation_id: {{conversation_id}}
|
|
9
|
+
{{/conversation_id}}
|
|
10
|
+
{{#repository}}
|
|
11
|
+
repository: {{repository}}
|
|
12
|
+
{{/repository}}
|
|
13
|
+
{{#branch}}
|
|
14
|
+
branch: {{branch}}
|
|
15
|
+
{{/branch}}
|
|
16
|
+
{{#model}}
|
|
17
|
+
model: {{model}}
|
|
18
|
+
{{/model}}
|
|
19
|
+
{{#token_count}}
|
|
20
|
+
token_count: {{token_count}}
|
|
21
|
+
{{/token_count}}
|
|
22
|
+
{{#duration_seconds}}
|
|
23
|
+
duration_seconds: {{duration_seconds}}
|
|
24
|
+
{{/duration_seconds}}
|
|
25
|
+
{{#work_id}}
|
|
26
|
+
work_id: {{work_id}}
|
|
27
|
+
{{/work_id}}
|
|
28
|
+
{{#tags}}
|
|
29
|
+
tags:
|
|
30
|
+
{{#tags}}
|
|
31
|
+
- {{.}}
|
|
32
|
+
{{/tags}}
|
|
33
|
+
{{/tags}}
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
# Session: {{title}}
|
|
37
|
+
|
|
38
|
+
## Metadata
|
|
39
|
+
|
|
40
|
+
- **Started**: {{date}}
|
|
41
|
+
{{#model}}
|
|
42
|
+
- **Model**: {{model}}
|
|
43
|
+
{{/model}}
|
|
44
|
+
{{#repository}}
|
|
45
|
+
- **Repository**: {{repository}}
|
|
46
|
+
{{/repository}}
|
|
47
|
+
{{#branch}}
|
|
48
|
+
- **Branch**: {{branch}}
|
|
49
|
+
{{/branch}}
|
|
50
|
+
{{#token_count}}
|
|
51
|
+
- **Tokens**: {{token_count}}
|
|
52
|
+
{{/token_count}}
|
|
53
|
+
{{#duration_seconds}}
|
|
54
|
+
- **Duration**: {{duration_seconds}}s
|
|
55
|
+
{{/duration_seconds}}
|
|
56
|
+
|
|
57
|
+
## Conversation
|
|
58
|
+
|
|
59
|
+
{{conversation}}
|
|
60
|
+
|
|
61
|
+
{{#summary}}
|
|
62
|
+
## Summary
|
|
63
|
+
|
|
64
|
+
{{summary}}
|
|
65
|
+
{{/summary}}
|
|
66
|
+
|
|
67
|
+
{{#decisions}}
|
|
68
|
+
## Decisions
|
|
69
|
+
|
|
70
|
+
{{#decisions}}
|
|
71
|
+
- {{.}}
|
|
72
|
+
{{/decisions}}
|
|
73
|
+
{{/decisions}}
|
|
74
|
+
|
|
75
|
+
{{#follow_ups}}
|
|
76
|
+
## Follow-ups
|
|
77
|
+
|
|
78
|
+
{{#follow_ups}}
|
|
79
|
+
- {{.}}
|
|
80
|
+
{{/follow_ups}}
|
|
81
|
+
{{/follow_ups}}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Session Log Type Definition
|
|
2
|
+
#
|
|
3
|
+
# This file defines the schema, frontmatter rules, and configuration
|
|
4
|
+
# for Claude Code session log entries.
|
|
5
|
+
|
|
6
|
+
id: session
|
|
7
|
+
display_name: Session Log
|
|
8
|
+
description: Claude Code sessions, conversation tracking, token usage, interaction history
|
|
9
|
+
|
|
10
|
+
# Output configuration
|
|
11
|
+
output_path: .fractary/logs/sessions
|
|
12
|
+
|
|
13
|
+
# File naming rules
|
|
14
|
+
file_naming:
|
|
15
|
+
pattern: "{date}-{session_id}.md"
|
|
16
|
+
date_format: "YYYYMMDD-HHmmss"
|
|
17
|
+
slug_source: session_id
|
|
18
|
+
slug_max_length: 36
|
|
19
|
+
|
|
20
|
+
# Frontmatter schema
|
|
21
|
+
frontmatter:
|
|
22
|
+
required_fields:
|
|
23
|
+
- log_type
|
|
24
|
+
- title
|
|
25
|
+
- session_id
|
|
26
|
+
- date
|
|
27
|
+
- status
|
|
28
|
+
optional_fields:
|
|
29
|
+
- conversation_id
|
|
30
|
+
- repository
|
|
31
|
+
- branch
|
|
32
|
+
- model
|
|
33
|
+
- token_count
|
|
34
|
+
- duration_seconds
|
|
35
|
+
- work_id
|
|
36
|
+
- tags
|
|
37
|
+
defaults:
|
|
38
|
+
log_type: session
|
|
39
|
+
status: active
|
|
40
|
+
|
|
41
|
+
# Document structure
|
|
42
|
+
structure:
|
|
43
|
+
required_sections:
|
|
44
|
+
- Metadata
|
|
45
|
+
- Conversation
|
|
46
|
+
optional_sections:
|
|
47
|
+
- Summary
|
|
48
|
+
- Decisions
|
|
49
|
+
- Follow-ups
|
|
50
|
+
section_order:
|
|
51
|
+
- Metadata
|
|
52
|
+
- Conversation
|
|
53
|
+
- Summary
|
|
54
|
+
- Decisions
|
|
55
|
+
- Follow-ups
|
|
56
|
+
|
|
57
|
+
# Status workflow
|
|
58
|
+
status:
|
|
59
|
+
allowed_values:
|
|
60
|
+
- active
|
|
61
|
+
- stopped
|
|
62
|
+
- archived
|
|
63
|
+
- error
|
|
64
|
+
default: active
|
|
65
|
+
|
|
66
|
+
# Retention policy
|
|
67
|
+
retention:
|
|
68
|
+
default_local_days: 7
|
|
69
|
+
default_cloud_days: forever
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Test Log Standards
|
|
2
|
+
|
|
3
|
+
## Required Conventions
|
|
4
|
+
|
|
5
|
+
### 1. Identification
|
|
6
|
+
- ALWAYS include unique test_id
|
|
7
|
+
- ALWAYS specify test type (unit, integration, e2e, performance)
|
|
8
|
+
- ALWAYS include test framework name
|
|
9
|
+
|
|
10
|
+
### 2. Results Tracking
|
|
11
|
+
- ALWAYS include pass/fail/skip counts
|
|
12
|
+
- ALWAYS set status based on results (passed if all pass, failed if any fail)
|
|
13
|
+
- ALWAYS include coverage percentage when available
|
|
14
|
+
|
|
15
|
+
### 3. Failure Documentation
|
|
16
|
+
- ALWAYS include error messages for failures
|
|
17
|
+
- ALWAYS include stack traces when available
|
|
18
|
+
- ALWAYS include test name that failed
|
|
19
|
+
|
|
20
|
+
### 4. Output Capture
|
|
21
|
+
- ALWAYS capture test runner output
|
|
22
|
+
- ALWAYS preserve output formatting
|
|
23
|
+
- ALWAYS truncate excessively long output with marker
|
|
24
|
+
|
|
25
|
+
## Best Practices
|
|
26
|
+
|
|
27
|
+
- Use unique test_id format: `TEST-{timestamp}-{random}`
|
|
28
|
+
- Link test runs to CI/CD pipelines
|
|
29
|
+
- Include environment information (Node version, etc.)
|
|
30
|
+
- Track test flakiness over time
|
|
31
|
+
- Keep failed test logs longer than passing
|
|
32
|
+
- Archive test logs based on test type (e2e longer than unit)
|
|
33
|
+
- Include screenshots for e2e test failures
|
|
34
|
+
- Document known flaky tests
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
log_type: test
|
|
3
|
+
title: {{title}}
|
|
4
|
+
test_id: {{test_id}}
|
|
5
|
+
date: {{date}}
|
|
6
|
+
status: {{status}}
|
|
7
|
+
{{#test_type}}
|
|
8
|
+
test_type: {{test_type}}
|
|
9
|
+
{{/test_type}}
|
|
10
|
+
{{#test_framework}}
|
|
11
|
+
test_framework: {{test_framework}}
|
|
12
|
+
{{/test_framework}}
|
|
13
|
+
{{#pass_count}}
|
|
14
|
+
pass_count: {{pass_count}}
|
|
15
|
+
{{/pass_count}}
|
|
16
|
+
{{#fail_count}}
|
|
17
|
+
fail_count: {{fail_count}}
|
|
18
|
+
{{/fail_count}}
|
|
19
|
+
{{#skip_count}}
|
|
20
|
+
skip_count: {{skip_count}}
|
|
21
|
+
{{/skip_count}}
|
|
22
|
+
{{#coverage_percent}}
|
|
23
|
+
coverage_percent: {{coverage_percent}}
|
|
24
|
+
{{/coverage_percent}}
|
|
25
|
+
{{#duration_seconds}}
|
|
26
|
+
duration_seconds: {{duration_seconds}}
|
|
27
|
+
{{/duration_seconds}}
|
|
28
|
+
{{#work_id}}
|
|
29
|
+
work_id: {{work_id}}
|
|
30
|
+
{{/work_id}}
|
|
31
|
+
{{#tags}}
|
|
32
|
+
tags:
|
|
33
|
+
{{#tags}}
|
|
34
|
+
- {{.}}
|
|
35
|
+
{{/tags}}
|
|
36
|
+
{{/tags}}
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
# Test Run: {{title}}
|
|
40
|
+
|
|
41
|
+
## Summary
|
|
42
|
+
|
|
43
|
+
- **Total**: {{total_count}}
|
|
44
|
+
{{#pass_count}}
|
|
45
|
+
- **Passed**: {{pass_count}}
|
|
46
|
+
{{/pass_count}}
|
|
47
|
+
{{#fail_count}}
|
|
48
|
+
- **Failed**: {{fail_count}}
|
|
49
|
+
{{/fail_count}}
|
|
50
|
+
{{#skip_count}}
|
|
51
|
+
- **Skipped**: {{skip_count}}
|
|
52
|
+
{{/skip_count}}
|
|
53
|
+
{{#coverage_percent}}
|
|
54
|
+
- **Coverage**: {{coverage_percent}}%
|
|
55
|
+
{{/coverage_percent}}
|
|
56
|
+
{{#duration_seconds}}
|
|
57
|
+
- **Duration**: {{duration_seconds}}s
|
|
58
|
+
{{/duration_seconds}}
|
|
59
|
+
|
|
60
|
+
{{#failures}}
|
|
61
|
+
## Failures
|
|
62
|
+
|
|
63
|
+
{{#failures}}
|
|
64
|
+
### {{name}}
|
|
65
|
+
|
|
66
|
+
- **Error**: {{error}}
|
|
67
|
+
{{#stack}}
|
|
68
|
+
- **Stack**:
|
|
69
|
+
```
|
|
70
|
+
{{stack}}
|
|
71
|
+
```
|
|
72
|
+
{{/stack}}
|
|
73
|
+
|
|
74
|
+
{{/failures}}
|
|
75
|
+
{{/failures}}
|
|
76
|
+
|
|
77
|
+
{{#output}}
|
|
78
|
+
## Output
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
{{output}}
|
|
82
|
+
```
|
|
83
|
+
{{/output}}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Test Log Type Definition
|
|
2
|
+
#
|
|
3
|
+
# This file defines the schema, frontmatter rules, and configuration
|
|
4
|
+
# for test execution log entries.
|
|
5
|
+
|
|
6
|
+
id: test
|
|
7
|
+
display_name: Test Log
|
|
8
|
+
description: Test runs, QA results, test failures, coverage reports, CI test output
|
|
9
|
+
|
|
10
|
+
# Output configuration
|
|
11
|
+
output_path: .fractary/logs/test
|
|
12
|
+
|
|
13
|
+
# File naming rules
|
|
14
|
+
file_naming:
|
|
15
|
+
pattern: "{date}-{test_id}.md"
|
|
16
|
+
date_format: "YYYYMMDD-HHmmss"
|
|
17
|
+
slug_source: test_id
|
|
18
|
+
slug_max_length: 36
|
|
19
|
+
|
|
20
|
+
# Frontmatter schema
|
|
21
|
+
frontmatter:
|
|
22
|
+
required_fields:
|
|
23
|
+
- log_type
|
|
24
|
+
- title
|
|
25
|
+
- test_id
|
|
26
|
+
- date
|
|
27
|
+
- status
|
|
28
|
+
optional_fields:
|
|
29
|
+
- test_type
|
|
30
|
+
- test_framework
|
|
31
|
+
- pass_count
|
|
32
|
+
- fail_count
|
|
33
|
+
- skip_count
|
|
34
|
+
- coverage_percent
|
|
35
|
+
- duration_seconds
|
|
36
|
+
- work_id
|
|
37
|
+
- tags
|
|
38
|
+
defaults:
|
|
39
|
+
log_type: test
|
|
40
|
+
status: running
|
|
41
|
+
|
|
42
|
+
# Document structure
|
|
43
|
+
structure:
|
|
44
|
+
required_sections:
|
|
45
|
+
- Summary
|
|
46
|
+
optional_sections:
|
|
47
|
+
- Failures
|
|
48
|
+
- Output
|
|
49
|
+
section_order:
|
|
50
|
+
- Summary
|
|
51
|
+
- Failures
|
|
52
|
+
- Output
|
|
53
|
+
|
|
54
|
+
# Status workflow
|
|
55
|
+
status:
|
|
56
|
+
allowed_values:
|
|
57
|
+
- running
|
|
58
|
+
- passed
|
|
59
|
+
- failed
|
|
60
|
+
- skipped
|
|
61
|
+
default: running
|
|
62
|
+
|
|
63
|
+
# Test type classification
|
|
64
|
+
test_type:
|
|
65
|
+
allowed_values:
|
|
66
|
+
- unit
|
|
67
|
+
- integration
|
|
68
|
+
- e2e
|
|
69
|
+
- performance
|
|
70
|
+
default: unit
|
|
71
|
+
|
|
72
|
+
# Retention policy
|
|
73
|
+
retention:
|
|
74
|
+
default_local_days: 7
|
|
75
|
+
default_cloud_days: 14
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Workflow Log Standards
|
|
2
|
+
|
|
3
|
+
## Required Conventions
|
|
4
|
+
|
|
5
|
+
### 1. Identification
|
|
6
|
+
- ALWAYS use workflow-{id} format for workflow_id
|
|
7
|
+
- ALWAYS specify workflow type (faber, etl, cicd, data-pipeline, custom)
|
|
8
|
+
- ALWAYS link to work item when applicable
|
|
9
|
+
|
|
10
|
+
### 2. Phase Tracking
|
|
11
|
+
- ALWAYS track current FABER phase for faber workflows
|
|
12
|
+
- ALWAYS record phase transitions
|
|
13
|
+
- ALWAYS timestamp all operations
|
|
14
|
+
|
|
15
|
+
### 3. Operation Logging
|
|
16
|
+
- ALWAYS log operations with timestamps
|
|
17
|
+
- ALWAYS include operation duration
|
|
18
|
+
- ALWAYS track operation status
|
|
19
|
+
|
|
20
|
+
### 4. Decision Documentation
|
|
21
|
+
- ALWAYS document key decisions
|
|
22
|
+
- ALWAYS include decision rationale
|
|
23
|
+
- ALWAYS note alternatives considered
|
|
24
|
+
|
|
25
|
+
## Best Practices
|
|
26
|
+
|
|
27
|
+
- Use unique workflow_id format: `workflow-{timestamp}-{random}`
|
|
28
|
+
- Track dependencies between workflows
|
|
29
|
+
- Include context (project, repo, branch)
|
|
30
|
+
- Record all artifacts created
|
|
31
|
+
- Calculate and display metrics
|
|
32
|
+
- Document next steps for continuation
|
|
33
|
+
- Link related workflow logs
|
|
34
|
+
- Archive completed workflows with metrics summary
|
|
35
|
+
- Use partial status for workflows that partially succeed
|