ai-plans
Create and manage AI-driven plans with goals and key results.
Installation
npm install ai-plans
# or
yarn add ai-plans
# or
pnpm add ai-plans
Usage
The ai-plans
package provides a functional API for creating plans with goals and key results.
import { Plan } from 'ai-plans'
const myPlan = Plan({
name: 'Increase Customer Engagement',
description: 'A strategic plan to improve customer engagement metrics',
goal: {
objective: 'Create delighted customers who achieve their goals',
keyResults: [
'Achieve 95% customer satisfaction score by Q4',
'Reduce average support resolution time by 30%',
{
description: 'Increase customer retention rate to 85%',
target: 85,
currentValue: 72,
unit: '%',
},
],
},
steps: [
{
name: 'Research user needs',
description: 'Conduct user interviews and surveys',
status: 'not_started',
},
{
name: 'Develop engagement strategy',
description: 'Create strategy based on research findings',
status: 'not_started',
},
],
})
// Save the plan to the backend
await myPlan.save()
API
Plan(options)
Creates a new plan with the provided options.
Options
name
(string, required): The name of the plandescription
(string, optional): A description of the plangoal
(object, required): The goal of the planobjective
(string, required): The objective of the goalkeyResults
(array, required): An array of key results for the goal- Each key result can be a string or an object with:
description
(string, required): The description of the key resulttarget
(number, optional): The target value for the key resultcurrentValue
(number, optional): The current value of the key resultunit
(string, optional): The unit of measurement for the key result
- Each key result can be a string or an object with:
steps
(array, optional): An array of steps for the plan- Each step is an object with:
name
(string, required): The name of the stepdescription
(string, optional): A description of the steporder
(number, optional): The order of the stepduration
(number, optional): The duration of the stepassignee
(string or object, optional): The assignee of the stepstatus
(string, optional): The status of the step (‘not_started’, ‘in_progress’, ‘completed’, ‘blocked’)
- Each step is an object with:
- Additional properties can be provided and will be included in the plan
Returns
Returns a plan object with the following methods:
save()
: Saves the plan to the backend and returns the saved planupdateProgress(keyResult, value)
: Updates the progress of a key resultkeyResult
(string or object): The key result to update (ID or object)value
(number): The new value for the key result
getProgress()
: Gets the progress of the plan and returns an object with:progress
(number): The overall progress of the plan (0-100)keyResults
(array): An array of key results with their progress
Example: Updating Progress
// Create a plan
const myPlan = Plan({
name: 'Increase Customer Engagement',
goal: {
objective: 'Create delighted customers who achieve their goals',
keyResults: [
{
description: 'Achieve 95% customer satisfaction score by Q4',
target: 95,
currentValue: 80,
},
],
},
})
// Save the plan
const savedPlan = await myPlan.save()
// Update the progress of a key result
await myPlan.updateProgress(savedPlan.goals[0].keyResults[0], 85)
// Get the progress of the plan
const progress = await myPlan.getProgress()
console.log(`Overall progress: ${progress.progress}%`)
License
MIT