datai/datai-scenes/datai-scene-salesforce/scripts/auto-commit.ps1

203 lines
4.5 KiB
PowerShell
Raw Permalink Normal View History

#!/usr/bin/env pwsh
# 自动提交脚本 - 基于 SSOT 2.0 规则
# 配置变量
$ProjectRoot = "$PSScriptRoot\.."
$DocsDir = "$ProjectRoot\docs"
$IndexFile = "$DocsDir\index.md"
$SessionsDir = "$DocsDir\sessions"
$ChangelogDir = "$DocsDir\changelog"
$CurrentDate = Get-Date -Format "yyyyMMdd"
$SessionFile = "$SessionsDir\$CurrentDate-session.md"
# 函数:更新文档索引
function Update-Index {
Write-Host "正在更新文档索引..."
# 获取所有文档文件
$DocFiles = Get-ChildItem -Path $DocsDir -Recurse -File | Where-Object { $_.Extension -eq ".md" -or $_.Extension -eq ".canvas" }
# 读取当前索引文件内容
$IndexContent = Get-Content -Path $IndexFile -Raw
# 这里可以添加更复杂的索引更新逻辑
# 例如:自动添加新文件到索引
Write-Host "文档索引更新完成"
}
# 函数:创建会话记录
function Create-Session {
Write-Host "正在创建会话记录..."
# 检查会话目录是否存在
if (!(Test-Path $SessionsDir)) {
New-Item -ItemType Directory -Path $SessionsDir -Force | Out-Null
}
# 创建会话记录内容
$SessionContent = @"
# 会话记录
## 现状
[描述当前项目或任务的现状包括已完成的工作遇到的问题等]
## 目标
[描述本次会话的具体目标包括要实现的功能解决的问题等]
## 输入链接
- [需求文档](https://example.com) - 相关需求描述
- [设计文档](https://example.com) - 相关设计说明
- [架构决策](https://example.com) - 相关架构决策
## Prompt 文件
- [Prompt 模板](https://example.com) - 使用的提示词文件
## Context Snapshot
记录本次会话参考了哪些 Canvas 节点
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
- **参考节点**: [节点名称](路径) - 描述
- **快照时间**: $(Get-Date -Format "yyyy-MM-dd HH:mm:ss")
## 执行过程
详细记录本次会话的执行过程包括
1. 执行的命令或操作
2. 遇到的问题及解决方案
3. 关键决策点
4. 时间线
## 关键产出
记录本次会话的关键产出例如
- 生成的代码文件
- 更新的文档
- 解决的问题
- 达成的共识
## 质疑与替代方案
记录在执行过程中提出的质疑和考虑的替代方案
- 质疑[具体质疑内容]
- 替代方案[替代方案描述]
- 评估[对替代方案的评估]
## 结论
总结本次会话的结果包括
- 完成的工作
- 达成的目标
- 后续的行动计划
- 需要跟进的事项
## Design Update
- [ ] 是否需要更新 Canvas?
- [ ] Authentication.canvas
- [ ] 其他 Canvas 文件: ____________________
## 复现步骤
提供复现本次会话结果的具体步骤
1. [步骤 1 描述]
2. [步骤 2 描述]
3. [步骤 3 描述]
4. [验证方法描述]
"@
# 写入会话记录文件
$SessionContent | Out-File -FilePath $SessionFile -Encoding UTF8
Write-Host "会话记录已创建: $SessionFile"
}
# 函数:创建变更记录
function Create-Changelog {
Write-Host "正在创建变更记录..."
# 检查变更日志目录是否存在
if (!(Test-Path $ChangelogDir)) {
New-Item -ItemType Directory -Path $ChangelogDir -Force | Out-Null
}
# 创建变更记录内容
$ChangelogContent = @"
# 变更记录 - $CurrentDate
## 变更内容
- [变更 1] - 描述
- [变更 2] - 描述
- [变更 3] - 描述
## 影响范围
- 模块 1
- 模块 2
- 模块 3
## 实施人员
- [实施人员]
## 日期
$CurrentDate
"@
# 写入变更记录文件
$ChangelogFile = "$ChangelogDir\$CurrentDate-changelog.md"
$ChangelogContent | Out-File -FilePath $ChangelogFile -Encoding UTF8
Write-Host "变更记录已创建: $ChangelogFile"
}
# 函数:执行 git 提交
function Execute-GitCommit {
Write-Host "正在执行 git 提交..."
# 切换到项目根目录
Set-Location -Path $ProjectRoot
# 添加所有变更
git add .
# 提交变更
$CommitMessage = "chore: auto-commit - $(Get-Date -Format "yyyy-MM-dd HH:mm:ss")"
git commit -m $CommitMessage
Write-Host "git 提交完成"
}
# 主函数
function Main {
Write-Host "开始执行自动提交脚本..."
# 更新文档索引
Update-Index
# 创建会话记录
Create-Session
# 创建变更记录
Create-Changelog
# 执行 git 提交
Execute-GitCommit
Write-Host "自动提交脚本执行完成!"
}
# 执行主函数
Main