FRDCSA | internal codebases | BrainLeach

[Project image]

Architecture Diagram: GIF
Code: GitHub

Jump to: Project Description | Parent Description | Capabilities

Project Description

The name Brain Leach was tip of the tounge humor from Joe Gresham regarding this functionality. brainleach records session commands. It keeps a basic, expandable todo list (an [[HTN]]). There is a current task context which is defined as a subset of goals from the HTN. The most precise context is obtained by taking the current task context and repeatedly applying the following rule: if all children of a node are in the set, the parent is included and the children removed. As atomized commands are recorded into the [[Atomized Command List]], each terminal node in the HTN is associated with a subsequence of the [[Atomized Command List]], called the [[Task Script]], s.t. foreach element s_i in S exists s_j in S j>i s.t. depends(S_j,S_i), and that the sequence is sufficient to achieve the task. These commands can then be reapplied against a system automatically to reobtain the result. It is possible to edit the sequences ex post facto. all instances of [[task script]] are stored in a database that can be consulted for reference. There are also added to the wiki. Tasks in the HTN are associated with RT tickets. Based on closing of tickets, preference relations, and possibly judgements of the complexity and necessity of various tasks, scores are computed for productivity that are fed into the score system. Possibly there should be visualization of the progress of the systems in [[problemspace]] or [[setanta]]. There are checklist lookups and automated assistance. The computer can take over the completion of more complex tasks. In this way, [[task script]]s are automatically developed for various tasks and added to a library. The [[task script]]s are also added to the wiki in docbook style formatting. Comments are also solicited from the user, and the system often asks the user to clarify what the previous steps accomplished. The user is able to issue commands to interact with the task database. For now it only works off the shell and in emacs and possibly screen, but in the future should be more responsive to using more programs. The problem is that we cannot currently record them. brainleach gets Emacs input from manager::Records::Context. Should have an interface for auto-posting to RT about what has already been done. Records all sessions, so as to provide the ability to review later when that code is complete.


  • For brainleach and memax etc, have the ability to play and rewind the session so that we can see what we were working on
  • It might make sense to have a program that DDs can use, something like brainleach, that can record the commands they use and the results on the data, in order to determine how to effectively package.
  • Integrate brainleach with the system for planning bash and perl scripts, and manipulating linux, and have it understand what's being written, and use that to record scripts, so that when we build a machine with vagrant, and make modifications, it can add those modifications to a bootstrap.sh
  • Integrate Vagrant and brainleach
  • integrate brainleach with vagrant
  • brainleach should make use of the execution-engine stuff for hooking the shell.
  • brainleach should consider Vagrant, and automatically creating vagrantfiles from user operations.
  • brainleach will assist in bringing people up to speed on a project, by recording the troubleshooting tree of the project.
  • setanta can learn from brainleach how to solve certain problems.
  • brainleach or the backwatcher program should use constraint satisfaction techniques for debugging.
  • Extract an API for HTNs for brainleach.
  • packager could really make use of brainleach, eh!
  • Figure out way to have brainleach query timeout...
  • Setup brainleach?
  • brainleach should use Convert::Wiki to convert from docbook outputted HTML to the wiki.
  • brainleach should have tab completion for previously entered tasks.
  • brainleach should run things through declassify
  • Use brainleach to help to close tasks, and to record them, etc.
  • brainleach scripts in the wiki should link to downloadable or similar versions of the scripts, so they don't have to copy and paste.
  • Setup brainleach to start automatically.
  • Get brainleach, study (the two are actually related) working well.
  • brainleach can use FURL as its documentation language.
  • Have brainleach take its queue and data from elog.
  • brainleach should make sure that every problem has something written about it - by recording those problems that don't have anything written about it.
  • brainleach should monitor squid access logs in order to generate references.
  • brainleach - Model configuration as a directed graph, with commands as edges.
  • brainleach should support an agentive behaviour where you make a user directory and give it sudo and then tell the FRDCSA about it, it logs in and begins configuring the machine to be a server.
  • one way to make auto-packager work better would be to get brainleach working, then run it on packaging several systems, then use the data.
  • Integrate brainleach into manager Records Session
    ("completed" "25348")
  • brainleach checkout http://freshmeat.net/releases/267753/ CODESH

This page is part of the FWeb package.
Last updated Sat Oct 26 16:50:42 EDT 2019 .