@fractary/core 0.7.23 → 0.7.25
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/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,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
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
log_type: workflow
|
|
3
|
+
title: {{title}}
|
|
4
|
+
workflow_id: {{workflow_id}}
|
|
5
|
+
timestamp: {{timestamp}}
|
|
6
|
+
status: {{status}}
|
|
7
|
+
{{#work_item_id}}
|
|
8
|
+
work_item_id: {{work_item_id}}
|
|
9
|
+
{{/work_item_id}}
|
|
10
|
+
{{#phase}}
|
|
11
|
+
phase: {{phase}}
|
|
12
|
+
{{/phase}}
|
|
13
|
+
{{#workflow_type}}
|
|
14
|
+
workflow_type: {{workflow_type}}
|
|
15
|
+
{{/workflow_type}}
|
|
16
|
+
{{#context}}
|
|
17
|
+
context:
|
|
18
|
+
{{#context.project}}
|
|
19
|
+
project: {{context.project}}
|
|
20
|
+
{{/context.project}}
|
|
21
|
+
{{#context.repository}}
|
|
22
|
+
repository: {{context.repository}}
|
|
23
|
+
{{/context.repository}}
|
|
24
|
+
{{#context.branch}}
|
|
25
|
+
branch: {{context.branch}}
|
|
26
|
+
{{/context.branch}}
|
|
27
|
+
{{/context}}
|
|
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
|
+
# Workflow: {{title}}
|
|
40
|
+
|
|
41
|
+
{{#phase}}
|
|
42
|
+
## Current Phase: {{phase}}
|
|
43
|
+
{{/phase}}
|
|
44
|
+
|
|
45
|
+
## Operations
|
|
46
|
+
|
|
47
|
+
| Timestamp | Phase | Operation | Status | Duration |
|
|
48
|
+
|-----------|-------|-----------|--------|----------|
|
|
49
|
+
{{#operations}}
|
|
50
|
+
| {{timestamp}} | {{phase}} | {{operation}} | {{status}} | {{duration}}ms |
|
|
51
|
+
{{/operations}}
|
|
52
|
+
|
|
53
|
+
{{#decisions}}
|
|
54
|
+
## Decisions
|
|
55
|
+
|
|
56
|
+
{{#decisions}}
|
|
57
|
+
### {{title}}
|
|
58
|
+
|
|
59
|
+
- **Rationale**: {{rationale}}
|
|
60
|
+
{{#alternatives}}
|
|
61
|
+
- **Alternatives**: {{alternatives}}
|
|
62
|
+
{{/alternatives}}
|
|
63
|
+
|
|
64
|
+
{{/decisions}}
|
|
65
|
+
{{/decisions}}
|
|
66
|
+
|
|
67
|
+
{{#artifacts}}
|
|
68
|
+
## Artifacts
|
|
69
|
+
|
|
70
|
+
{{#artifacts}}
|
|
71
|
+
- {{.}}
|
|
72
|
+
{{/artifacts}}
|
|
73
|
+
{{/artifacts}}
|
|
74
|
+
|
|
75
|
+
{{#metrics}}
|
|
76
|
+
## Metrics
|
|
77
|
+
|
|
78
|
+
{{#total_duration}}
|
|
79
|
+
- **Duration**: {{total_duration}}
|
|
80
|
+
{{/total_duration}}
|
|
81
|
+
{{#operation_count}}
|
|
82
|
+
- **Operations**: {{operation_count}}
|
|
83
|
+
{{/operation_count}}
|
|
84
|
+
{{#success_rate}}
|
|
85
|
+
- **Success Rate**: {{success_rate}}%
|
|
86
|
+
{{/success_rate}}
|
|
87
|
+
{{/metrics}}
|
|
88
|
+
|
|
89
|
+
{{#next_steps}}
|
|
90
|
+
## Next Steps
|
|
91
|
+
|
|
92
|
+
{{#next_steps}}
|
|
93
|
+
- {{.}}
|
|
94
|
+
{{/next_steps}}
|
|
95
|
+
{{/next_steps}}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Workflow Log Type Definition
|
|
2
|
+
#
|
|
3
|
+
# This file defines the schema, frontmatter rules, and configuration
|
|
4
|
+
# for workflow execution log entries.
|
|
5
|
+
|
|
6
|
+
id: workflow
|
|
7
|
+
display_name: Workflow Log
|
|
8
|
+
description: FABER phases, ETL pipelines, data workflows, automation steps
|
|
9
|
+
|
|
10
|
+
# Output configuration
|
|
11
|
+
output_path: .fractary/logs/workflow
|
|
12
|
+
|
|
13
|
+
# File naming rules
|
|
14
|
+
file_naming:
|
|
15
|
+
pattern: "{date}-{workflow_id}.md"
|
|
16
|
+
date_format: "YYYYMMDD-HHmmss"
|
|
17
|
+
slug_source: workflow_id
|
|
18
|
+
slug_max_length: 36
|
|
19
|
+
|
|
20
|
+
# Frontmatter schema
|
|
21
|
+
frontmatter:
|
|
22
|
+
required_fields:
|
|
23
|
+
- log_type
|
|
24
|
+
- title
|
|
25
|
+
- workflow_id
|
|
26
|
+
- timestamp
|
|
27
|
+
- status
|
|
28
|
+
optional_fields:
|
|
29
|
+
- work_item_id
|
|
30
|
+
- phase
|
|
31
|
+
- workflow_type
|
|
32
|
+
- context
|
|
33
|
+
- work_id
|
|
34
|
+
- tags
|
|
35
|
+
defaults:
|
|
36
|
+
log_type: workflow
|
|
37
|
+
status: pending
|
|
38
|
+
|
|
39
|
+
# Document structure
|
|
40
|
+
structure:
|
|
41
|
+
required_sections:
|
|
42
|
+
- Operations
|
|
43
|
+
optional_sections:
|
|
44
|
+
- Current Phase
|
|
45
|
+
- Decisions
|
|
46
|
+
- Artifacts
|
|
47
|
+
- Metrics
|
|
48
|
+
- Next Steps
|
|
49
|
+
section_order:
|
|
50
|
+
- Current Phase
|
|
51
|
+
- Operations
|
|
52
|
+
- Decisions
|
|
53
|
+
- Artifacts
|
|
54
|
+
- Metrics
|
|
55
|
+
- Next Steps
|
|
56
|
+
|
|
57
|
+
# Status workflow
|
|
58
|
+
status:
|
|
59
|
+
allowed_values:
|
|
60
|
+
- pending
|
|
61
|
+
- running
|
|
62
|
+
- success
|
|
63
|
+
- failure
|
|
64
|
+
- partial
|
|
65
|
+
- cancelled
|
|
66
|
+
default: pending
|
|
67
|
+
|
|
68
|
+
# FABER phase classification
|
|
69
|
+
phase:
|
|
70
|
+
allowed_values:
|
|
71
|
+
- Frame
|
|
72
|
+
- Architect
|
|
73
|
+
- Build
|
|
74
|
+
- Evaluate
|
|
75
|
+
- Release
|
|
76
|
+
default: Frame
|
|
77
|
+
|
|
78
|
+
# Workflow type classification
|
|
79
|
+
workflow_type:
|
|
80
|
+
allowed_values:
|
|
81
|
+
- faber
|
|
82
|
+
- etl
|
|
83
|
+
- cicd
|
|
84
|
+
- data-pipeline
|
|
85
|
+
- custom
|
|
86
|
+
default: faber
|
|
87
|
+
|
|
88
|
+
# Retention policy
|
|
89
|
+
retention:
|
|
90
|
+
default_local_days: 30
|
|
91
|
+
default_cloud_days: 90
|