refactor(workflow): Enhance Notion reporting and context awareness

- Adds a '--summary' parameter to dev_session.py to allow for detailed, narrative descriptions in Notion status updates.
- The Notion comment format is updated to prominently display this summary.

- start-gemini.sh is refactored to be more robust and context-aware.
- It now injects the container name and a strict rule against nested docker commands into the Gemini CLI's initial prompt.
- This prevents operational errors and provides better context for the agent.
This commit is contained in:
2026-01-26 12:51:53 +00:00
parent 0a1be647c4
commit c4baf68595
2 changed files with 92 additions and 12 deletions

View File

@@ -454,7 +454,8 @@ def report_status_to_notion(
status_override: Optional[str],
todos_override: Optional[str],
git_changes_override: Optional[str],
commit_messages_override: Optional[str]
commit_messages_override: Optional[str],
summary_override: Optional[str]
) -> None:
"""
Erstellt einen Statusbericht für den Notion-Task, entweder interaktiv oder mit überschriebenen Werten.
@@ -514,6 +515,18 @@ def report_status_to_notion(
print("❌ FEHLER: Kein Status festgelegt. Abbruch des Berichts.")
return
# Detaillierte Zusammenfassung abfragen oder übernehmen
actual_summary = summary_override
if not actual_summary:
print("\nBitte gib eine Zusammenfassung der Arbeit ein (was wurde getan, Ergebnisse, Probleme etc.).")
user_summary_lines = []
while True:
line = input()
if not line:
break
user_summary_lines.append(line)
actual_summary = "\n".join(user_summary_lines)
# To-Dos abfragen oder übernehmen
actual_todos = todos_override
if not actual_todos:
@@ -524,9 +537,13 @@ def report_status_to_notion(
report_lines = []
report_lines.append(f"**Status Update ({datetime.now().strftime('%Y-%m-%d %H:%M')})**")
report_lines.append(f"**Neuer Status:** `{actual_status}`")
if actual_summary:
report_lines.append("\n**Arbeitszusammenfassung:**")
report_lines.append(actual_summary)
if actual_git_changes or actual_commit_messages:
report_lines.append("\n**Zusammenfassung der Änderungen:**")
report_lines.append("\n**Technische Änderungen (Git):**")
if actual_git_changes:
report_lines.append("```diff")
report_lines.append(actual_git_changes)
@@ -761,6 +778,7 @@ def main():
parser.add_argument("--todos", type=str, help="Eine durch '\n' getrennte Liste offener To-Dos.")
parser.add_argument("--git-changes", type=str, help="Zusammenfassung der Git-Änderungen (git diff --stat).")
parser.add_argument("--commit-messages", type=str, help="Eine durch '\n' getrennte Liste der Commit-Nachrichten.")
parser.add_argument("--summary", type=str, help="Eine detaillierte textuelle Zusammenfassung der erledigten Arbeit.")
args = parser.parse_args()
@@ -783,7 +801,13 @@ def main():
except (FileNotFoundError, json.JSONDecodeError):
print("❌ FEHLER: Fehler beim Lesen der Session-Informationen. Kann keinen Kommentar hinzufügen.")
elif args.report_status:
report_status_to_notion(args.status, args.todos, args.git_changes, args.commit_messages)
report_status_to_notion(
status_override=args.status,
todos_override=args.todos,
git_changes_override=args.git_changes,
commit_messages_override=args.commit_messages,
summary_override=args.summary
)
else:
start_interactive_session()