68 lines
2.2 KiB
Org Mode
68 lines
2.2 KiB
Org Mode
#+TITLE: SKILL: Project Manager Agent (Universal Literate Note)
|
|
#+ID: skill-project-manager
|
|
#+STARTUP: content
|
|
#+FILETAGS: :project:management:git:psf:
|
|
|
|
* Overview
|
|
The *Project Manager Agent* provides executive presence by monitoring project health and tracking git status. It leverages `:PROJECT_PATH:` metadata to gather "folder facts" and assist in the project lifecycle.
|
|
|
|
* Phase A: Demand (PRD)
|
|
:PROPERTIES:
|
|
:STATUS: FROZEN
|
|
:END:
|
|
|
|
** 1. Purpose
|
|
Define automated behaviors for project monitoring and version control tracking.
|
|
|
|
** 2. User Needs
|
|
- *Visibility:* Resolve physical project locations and gather git/file facts.
|
|
- *Contextual Awareness:* Trigger on status queries or project-node edits.
|
|
- *Lifecycle Support:* Suggest commit messages and identify uncommitted work.
|
|
|
|
** 3. Success Criteria
|
|
*** TODO Project Path Resolution
|
|
*** TODO Git Status Retrieval
|
|
*** TODO Executive Summary Generation
|
|
|
|
* Phase B: Blueprint (PROTOCOL)
|
|
:PROPERTIES:
|
|
:STATUS: SIGNED
|
|
:END:
|
|
|
|
** 1. Architectural Intent
|
|
Interfaces for filesystem and VCS introspection. Source of truth is the project's physical directory and Git state.
|
|
|
|
** 2. Semantic Interfaces
|
|
#+begin_src lisp
|
|
(defun trigger-skill-project-manager (context)
|
|
"Triggers on status queries or :PROJECT_PATH: presence.")
|
|
|
|
(defun get-project-diagnostics (raw-path)
|
|
"Gathers file list and git status.")
|
|
|
|
(defun get-git-diff (raw-path)
|
|
"Retrieves uncommitted changes.")
|
|
#+end_src
|
|
|
|
* Phase D: Build (Implementation)
|
|
|
|
** Diagnostic Retrieval
|
|
#+begin_src lisp :tangle projects/org-skill-project-manager/src/manager-logic.lisp
|
|
(defun get-project-diagnostics (raw-path)
|
|
(let ((resolved-path (uiop:native-namestring raw-path)))
|
|
(if (uiop:directory-exists-p resolved-path)
|
|
(format nil "FILES: ~a~%GIT: ~a"
|
|
(uiop:run-program (list "ls" "-F" resolved-path) :output :string)
|
|
(uiop:run-program (list "git" "-C" resolved-path "status" "--short") :output :string))
|
|
"ERROR: Path not found.")))
|
|
#+end_src
|
|
|
|
* Registration
|
|
#+begin_src lisp
|
|
(defskill :skill-project-manager
|
|
:priority 70
|
|
:trigger #'trigger-skill-project-manager
|
|
:neuro #'neuro-skill-project-manager
|
|
:symbolic (lambda (action context) action))
|
|
#+end_src
|