Give repair its own profile, reading what was said before and what fixed it before
Conf writing is granted to this profile alone and it is not offered as a button — making it selectable would put a write one click from any question. Its prompt leads on what it does not decide, because the resolver picks the key and the probe picks the value.
This commit is contained in:
@@ -109,6 +109,26 @@ const VV_AI_PROFILES_DEF = [
|
||||
'ui' => true,
|
||||
'caps' => ['retrieve', 'health', 'run_evidence', 'scoped_log', 'incidents', 'conf_lookup', 'file_bugs'],
|
||||
],
|
||||
// The only profile that may change a setting, and the only one not offered as a button.
|
||||
//
|
||||
// It is entered by opening a finding, the way troubleshoot was originally entered by opening
|
||||
// a log — a repair conversation with nothing to repair is a contract with no subject. That is
|
||||
// not the only reason though: capabilities are granted per profile, so making this selectable
|
||||
// would put conf_write one click away from any question at all. The narrow grant is the point.
|
||||
//
|
||||
// Reads two records of what has happened before. The phrasebook holds what the operator calls
|
||||
// things and, more usefully, what they have had to correct; closed findings hold what actually
|
||||
// fixed a fault last time. Between them the profile starts a conversation already knowing the
|
||||
// operator's vocabulary and this installation's history, instead of relearning both each time.
|
||||
'repair' => [
|
||||
'label' => 'Repair',
|
||||
'short' => 'Repair',
|
||||
'hint' => 'Works through a finding with you, and can apply a fix you approve.',
|
||||
'turns' => 3,
|
||||
'ui' => false,
|
||||
'caps' => ['retrieve', 'health', 'run_evidence', 'scoped_log', 'incidents', 'conf_lookup',
|
||||
'conf_write', 'probe', 'file_findings', 'phrasebook', 'past_fixes'],
|
||||
],
|
||||
];
|
||||
|
||||
// Documentation only — nothing branches on it. Kept beside the table because a capability name
|
||||
@@ -123,6 +143,11 @@ const VV_AI_CAP_MEANING = [
|
||||
'conf_lookup' => 'deterministic "where does this conf key actually live" lookup',
|
||||
'file_bugs' => 'may file a bug report against Varaverk itself',
|
||||
'code_scan' => 'destructive-operation scan of generated shell',
|
||||
'conf_write' => 'may change a setting — through the guarded write path, never directly',
|
||||
'probe' => 'may test a candidate address before anything is written to conf',
|
||||
'file_findings'=> 'may record, acknowledge and close findings about this installation',
|
||||
'phrasebook' => 'what the operator calls things, and what they have corrected before',
|
||||
'past_fixes' => 'findings already closed — what fixed this last time',
|
||||
];
|
||||
|
||||
function vv_ai_profiles(): array { return VV_AI_PROFILES_DEF; }
|
||||
|
||||
Reference in New Issue
Block a user